当前位置: 首页 > 知识库问答 >
问题:

Java模式与正则表达式[重复]不匹配

吕越彬
2023-03-14

这是我的问题。我有这个:

String data = "java.awt.Color[r=168,g=228,b=160]" //example this changes.
Pattern p = Pattern.compile("(\\d+)");
Matcher m = p.matcher(data);
if(m.matches()){
    ....
}

然而,它并不匹配。为什么?我试图检索括号内的数字。

我应该尝试什么?

共有3个答案

陆文斌
2023-03-14

请注意<code>匹配器。matches()方法尝试匹配整个字符串。

您希望改用< code>Matcher.find()。

洪黎昕
2023-03-14

匹配器。matches告诉您正则表达式是否匹配整个字符串。你的字符串不全是数字。它包含字母、圆点、等号和方括号。所以你和匹配者不匹配。

你想要 Matcher.find()。这将搜索部分匹配项。然后,Matcher.group允许您检索输入字符串的匹配部分。

佴阳辉
2023-03-14

Matcher.matches()匹配完整的字符串。您可以使用Matcher.find匹配单个整数:

while (m.find()) {
  System.out.println(m.group(1));
}
 类似资料:
  • 有没有一种方法可以在python中编写与以下格式的字符串匹配的正则表达式: 或 在这里,$=表示零或更多的空白可以存在 :来自字符串的固定子集的字符串['feat','fix','docs','断'] :最大长度为n的字符串 :最大长度为m的字符串 前缀应该始终是一个字符串,之后是一些最大q长度的字母数字字符 注意:我们不能省略像应该使用与下面示例中所示完全相同的格式: feat(feat new

  • 有没有人试图描述与正则表达式匹配的正则表达式? 由于重复的关键字,这个主题几乎不可能在网上找到。 它可能在实际应用程序中不可用,因为支持正则表达式的语言通常具有解析它们的方法,我们可以将其用于验证,以及一种在代码中分隔正则表达式的方法,可用于搜索目的。 但是我仍然想知道匹配所有正则表达式的正则表达式是什么样子的。应该可以写一个。

  • 我对Regex还比较陌生,觉得我错过了一些重要的东西。 我的模式<code>id='([a-zA-Z0-9])IFrame[id='frame'].leftObject中获取单词“frame”。 这是我正在使用的模式和代码的链接。https://regex101.com/r/MmkGZq/2 这是否与C#中的正则表达式与Java中的正则表达式不同有关?

  • 我有一根线,比如: 如何匹配每行的最后一个?顺便说一句,这是我试图在Sublime的文本中做到的。这些值不一致,就像我在这里看到的,我有几百行要替换。 我尝试了,但这与相匹配。