我试图返回在单个文本上使用regex得到的匹配数。我需要正则表达式是全局的,不区分大小写,这样它就可以满足我的需要。
我真正需要的是:
实际上,我所做的只是一个简单的检查,如果至少有一个字符与序列匹配,则返回true或false,而不是实际的匹配数。
我的代码:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(final String[] args) {
Main.findStrongSpamWords();
}
public static void findStrongSpamWords() {
final String body = "estoOne␣⏎␣Million jvegax ONE␣MILLION million one OnE>>% mIllion spam";
final Pattern pattern = Pattern.compile("one[^\\w]*million", Pattern.CASE_INSENSITIVE);
final Matcher matchResult = pattern.matcher(body);
System.out.println(matchResult.find());
}
}
没有正则表达式可以做到这一点。但是,对于Java9及更高版本,请使用Matcher.results(). count()
。
public static void findStrongSpamWords() {
final String body = "estoOne␣⏎␣Million jvegax ONE␣MILLION million one OnE>>% mIllion spam";
final Pattern pattern = Pattern.compile("one[^\\w]*million", Pattern.CASE_INSENSITIVE);
final Matcher matchResult = pattern.matcher(body);
System.out.println(matchResult.results().count());
}
如果你在Java8或更早,你必须数自己:
public static void findStrongSpamWords() {
final String body = "estoOne␣⏎␣Million jvegax ONE␣MILLION million one OnE>>% mIllion spam";
final Pattern pattern = Pattern.compile("one[^\\w]*million", Pattern.CASE_INSENSITIVE);
final Matcher matchResult = pattern.matcher(body);
int count = 0;
while (matchResult.find()) {
count++;
}
System.out.println(count);
}
我有一个字符串表达式,需要从中获取一些值。字符串如下所示 从这个stribg中,我需要获取一个字符串数组列表,其中包含“example ple1”、“example ple2”等值。 我有一个Java的方法如下所示: 但<code>m。find()总是返回<code>false。我缺少什么吗?
问题内容: 我正在使用模块中的函数来匹配某些东西,并且一切正常。 现在,我需要找出我有多少场比赛。是否可以不两次遍历迭代器?(先找出计数然后是真正的迭代) 一些代码: 一切正常,我只需要在循环之前获取匹配数即可。 问题答案: 如果您知道需要所有匹配项,则可以使用该功能。它将返回所有匹配项的列表。然后,您可以只进行匹配次数。
问题内容: 我试图创建下面的正则表达式:返回之间的字符串和(或或)从下列字符串RNA: ,让所有的比赛会被发现,包括重叠的。 我尝试了几种正则表达式,最后得到了类似的结果: 您能告诉我我的正则表达式模式中的错误吗? 问题答案: 用一个正则表达式执行此操作实际上是非常困难的,因为大多数用法 都不 希望重叠匹配。但是,您可以通过一些简单的迭代来做到这一点: 虽然,这有一些问题。您希望得到的回报是什么?
我们得到了一些这样的内容:
正则表达式如何匹配出这个字符串'calc(100vh - 420px)'中的数字420
问题内容: true)。但是,我编写了一个简单的程序,其结果表明,任何字符都根本与换行符不匹配。该程序可以在这里找到:http : //play.golang.org/p/pccP52RvKS。我真的很困惑。 任何帮助将不胜感激,并在此先感谢。 问题答案: 像大多数其他(所有?)正则表达式引擎一样,点不匹配换行符,除非您在正则表达式中添加“全部点”标志。 我使用您的链接对此进行了测试,并且可以正常