琐碎的正则表达式问题(答案很可能是特定于Java的):
"#This is a comment in a file".matches("^#")
这将返回false。据我所知,^
是指它始终意味着的#
含义,没有特殊含义,因此我将其翻译^#
为“字符串开头的’#’”。哪个应该匹配。在Perl中也是如此:
perl -e "print '#This is a comment'=~/^#/;"
打印“ 1”。所以我很确定答案是特定于Java的。有人能启发我吗?
谢谢。
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()
记录如下(强调我的意思): 尝试根据图案匹配 整个 区域。
我试图捕捉两个最接近的短语之间的文本,包括这些短语,但消极的展望似乎在我的情况下不起作用。 因此,这是文本文件的一部分: 我需要捕捉每一对<代码> 我的正则表达式是:
我已经为名称验证创建了一个正则表达式,其中只允许“_”、“-”、“'”、“.”。 以下是正则表达式: 问题是这是其允许的名称有< code>@,检查小提琴演示: 应为:不应允许包含< code>@的名称。 注意:当我在https://regex101.com/#javascript测试这个正则表达式时,它运行良好
问题内容: 我已经努力了两天才能使它正常工作,但我做不到(对正则表达式:S太糟糕了)。 从本文中,我需要检索两个不同的东西:和。为此,我创建了此正则表达式: 在该示例中,它可以工作。但是,如果我尝试其他文本:,则只会得到一个包含2个分组的匹配:和,而不是获得2个不同的匹配:一个具有分组和,另一个具有分组和。 我希望你能帮助我。 提前致谢。 问题答案: 这是为什么组合可能是邪恶的经典示例。请改用否定
问题内容: 我正在做一个小的javascript方法,该方法会接收到一个点列表,并且我必须阅读这些点才能在Google地图中创建多边形。 我在表格上收到这些要点: (lat,long),(lat,long),(lat,long) 因此,我完成了以下正则表达式: 我已经使用RegexPal和收到的确切数据进行了测试: 并且它可以正常工作,所以为什么当我在JavaScript中添加此代码后,结果中会收
问题内容: 我的理解是Java的正则表达式实现是基于Perl的。但是,在下面的示例中,如果我使用相同的字符串执行相同的regex,则Java和Perl返回不同的结果。 这是Java示例: 返回值:不匹配 这是Perl的示例: 返回:匹配项 对我来说,Perl的结果很有意义。它寻找单个单词字符的匹配项。我不明白为什么Java不认为这是一个匹配。差异的原因是什么? 问题答案: Java 方法正在测试正
我不知道为什么这个正则表达式不匹配。也许你能发现错误。 ficontents: 我想匹配>>>>>>客户端9462<<<<<捕获该号码,以及此后的所有内容,直到另一个客户端号码。所以我的第一个捕获是“9462”,第二个捕获是“Had a program exception;please check the error log”。 它使用JavaScript设置在regex101.com中工作得很好