java的正则表达式和其他的正则表达式不同,在一般的正则表达式中,我们会看到一些诸如\d,\t,\D等字符,这些字符是用来匹配字符串的,比如我们可以用Pattern类的matches方法来匹配:
可见,regex是正则表达式,input是输入的字符串,输出的结果为true:
注意到我们输入的正则表达式中出现了\\d字符,这个字符就表示正则表达式中的\d,意思是匹配0-9的数字。
但是当我们改成\d时,出现了静态检查错误:
检查表示出现了非法的转义字符。原来java把\d当成了一个转义字符,而不是正则表达式的字符!
所以当字符串中出现了单斜杠加一个字符时,表示为转义字符,如\n,\t等等。而当我们要用java的正则表达式中的字符时,要使用到诸如\d,\D,\B等字符,必须用双斜杠。
在其他语言中,\\ 表示:我想要在正则表达式中插入一个普通的(字面上的)反斜杠,请不要给它任何特殊的意义。
在 Java 中,\\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。
所以关于正则表达式中的反斜杠,它的作用是将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如, n匹配字符 n。\n 匹配换行符。序列 \\\\ 匹配 \\ ,\\( 匹配 (。
简单理解为,java中的\\代表其他语言的\。
需要注意一点:
java可以\\\\匹配\\,但是不可以\\匹配\!因为java不允许单个反斜杠的输入!
如图,试图\\匹配\会报错的:
\\\\匹配\\则没有问题:
总结
到此这篇关于java中单双斜杠使用的文章就介绍到这了,更多相关java单双斜杠使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!