java中,Pattern.matches("\\d+","2223");返回的是true。
Pattern.matches("\\d+","2223");
如果Pattern.matches("\d+",匹配的又是什么呢?比如换行符"\n"要匹配的时候,难道也要像上面那样写成"\\n"才能匹配成换行符?那re中"\n"匹配的又是什么呢?
Pattern.matches("\d+",
"\n"
"\\n"
光阴似箭催人老,日月如移越少年。
d试一下就知道了报错:d试一下就知道了报错: error: illegal escape character
d
+:表示大于一次的匹配d+匹配 d,...,ddd,...之类的东西
d+
ddd
以前我没注意过这问题, 然后找了一些资料 原来的理解我也有问题 刚才回答有不全的地方
应该是\n 或n两个都可以
\n
n
第一种是直接 变成正则里的n被正则引擎处理第二种是n被Java直接转化为一个newline character就是'u000A'当然正则也能匹配了
'u000A'
最后一个问题 要match 字面量的"\"+"n"可以在编译正则的时候用Pattern.LITERAL 那样正则引擎就会把n当成和n error: illegal escape character
"\"
"n"
Pattern.LITERAL
Pattern.compile("\n", Pattern.LITERAL );
因为你的语言没有正则这种类型,只能用字符串表示,所以要多转义一次。\n 是正则的 n 匹配换行,n 是字符串换,直接匹配换行当然也是对的
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'
当然正则也能匹配了🎜🎜最后一个问题 要match 字面量的
"\"
+"n"
🎜可以在编译正则的时候用Pattern.LITERAL
那样正则引擎就会把n
当成和
n
,而不认为是匹配newline字符🎜当然应该是用第一种方法🎜因为你的语言没有正则这种类型,只能用字符串表示,所以要多转义一次。
\n
是正则的 n 匹配换行,n
是字符串换,直接匹配换行当然也是对的