java中,Pattern.matches("\\d+","2223");
返回的是true。
如果Pattern.matches("\d+",
匹配的又是什么呢?
比如换行符"\n"
要匹配的时候,难道也要像上面那样写成"\\n"
才能匹配成换行符?那re中"\n"
匹配的又是什么呢?
阿神2017-04-18 09:33:00
d
试一下就知道了报错:d
试一下就知道了报错:
error: illegal escape character
+:表示大于一次的匹配d+
匹配 d
,...,ddd
,...之类的东西
以前我没注意过这问题, 然后找了一些资料 原来的理解我也有问题 刚才回答有不全的地方
应该是\n
或n
两个都可以
第一种是直接 变成正则里的n
被正则引擎处理
第二种是n
被Java直接转化为一个newline character就是'u000A'
当然正则也能匹配了
最后一个问题 要match 字面量的"\"
+"n"
可以在编译正则的时候用Pattern.LITERAL
那样正则引擎就会把n
当成和
n
error: illegal escape character
d+
匹配 d
,...,ddd
,...之类的东西🎜
\n
或n
两个都可以🎜
🎜第一种是直接 变成正则里的n
被正则引擎处理🎜第二种是n
被Java直接转化为一个newline character就是'u000A'
当然正则也能匹配了🎜
"\"
+"n"
🎜可以在编译正则的时候用Pattern.LITERAL
那样正则引擎就会把n
当成
和n
,而不认为是匹配newline字符🎜当然应该是用第一种方法🎜
Pattern.compile("\n", Pattern.LITERAL );