琐碎的正则表达式问题(答案很可能是特定于Java的):
"#This is a comment in a file".matches("^#")
Run Code Online (Sandbox Code Playgroud)
这返回false.据我所知,^意味着它总是意味着什么并且#没有特殊意义,所以我^#在字符串的开头翻译为"A'#".哪个应该匹配.在Perl中它确实如此:
perl -e "print '#This is a comment'=~/^#/;"
Run Code Online (Sandbox Code Playgroud)
打印"1".所以我很确定答案是Java特有的.有人请赐教吗?
谢谢.
Joa*_*uer 17
Matcher.matches()检查整个输入字符串是否与正则表达式匹配.
由于您的正则表达式只匹配第一个字符,因此返回false.
你会想要使用Matcher.find().
当然,找到具体的规范可能有点棘手,但它在那里:
String.matches()被定义为做同样的事情Pattern.matches(regex, str).Pattern.matches()反过来被定义为Pattern.compile(regex).matcher(input).matches().
Pattern.compile()返回一个Pattern.Pattern.matcher() 返回一个 Matcher Matcher.matches() 记录如下(强调我的):
尝试将整个区域与模式匹配.
| 归档时间: |
|
| 查看次数: |
3908 次 |
| 最近记录: |