问题标签 [matcher]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1080 浏览

java - java正则表达式匹配器

我正在尝试从 10 个网站获取数据,如果您只打印出每个组本身,它就可以正常工作,例如:system.out.println(courseCode); 打印出 10 个 courseCode 的列表,但是当我尝试将它们添加到这些向量中时,它只添加最后一个 courseCode 而不是每个。所以每个向量应该有 10 个元素,但它们只有 1 个。有没有办法喜欢遍历匹配项?

0 投票
1 回答
177 浏览

java - 如何用后处理值替换正则表达式组?

我有这个代码

输入是:

输出示例:

我想用该方法返回的选取值替换 {} 组模板。我如何在 Java1.5 中做到这一点?

0 投票
2 回答
200 浏览

scala - 如何使用规格测试框架从 Matcher[A] 组成 Matcher[Iterable[A]]

如果我有一个 Matcher[A] 如何创建一个 Matcher[Iterable[A]] 只有当 Iterable 的每个元素都满足原始 Matcher 时才满足。

0 投票
4 回答
1991 浏览

java - Java Split 未按预期工作

我正在尝试使用简单的拆分来分解以下字符串:00-00000

我的表达是:^([0-9][0-9])(-)([0-9])([0-9])([0-9])([0-9])([0-9])

我的用法是:

如果我使用 Pattern 和 Matcher 类,我可以看到我的模式确实匹配,并且匹配器告诉我我的 groupCount 是 7,这是正确的。但是当我尝试拆分它们时,我没有运气。

0 投票
2 回答
131 浏览

java - 找到匹配项,但如何提取数据?

我有以下正则表达式(abc|def)( ?(\\d+|(?:(?!\\1)[a-z])+)?)*与主题完全匹配abc123 456
现在我想得到所有部分abc123456

我使用以下代码:

但所以我只得到abc123 456.

欢迎任何想法。

0 投票
4 回答
237 浏览

java - java正则表达式问题

我想要一个可以匹配的正则表达式 <FONT FACE=\"Verdana\" SIZE=\"12\"> My Name is xyz </FONT>

<LI><FONT FACE=\"Verdana\" SIZE=\"12\"> My Name is xyz </FONT></LI>它不应该是贪婪的

0 投票
4 回答
494 浏览

java - java正则表达式匹配

可以匹配以下2个字符串的正则表达式是什么。

Hi<Dog>Hi<Dog>在给定的文本中。

更新:

什么正则表达式会匹配这个?

<FONT.*?<\/FONT>只匹配到第一个</FONT>

0 投票
1 回答
475 浏览

java - java 6 匹配器类

我有一个字符串如下:

我需要在 | 的第 5 次和第 6 次出现之间制作内容 如果内容是“”,则为空白。所以想要的输出是

所以我使用 matcher/pattern 和 matcher.replaceFirst() 使用这个正则表达式模式:

虽然我只想要 | 第 5 次和第 6 次出现的“” 要设为 EMPTY,程序将其遇到的所有“”替换为 EMPTY。

所以输出如下:

我不确定是否需要更改我拥有的正则表达式模式?或者有没有办法告诉匹配器类告诉它一旦改变了第一个“”,就不要改变那个匹配模式中的其他“”,而是在另一个出现的 TEST 片段中改变它,如果是这样怎么办?

更新:

知道了。对巨大的混乱感到非常抱歉。我将尽我所能,使其尽可能准确/清晰。

问题改写:

我想使用模式在使用 java Pattern 和匹配器类的字符串中进行搜索。

该字符串有两行数据,由 | 分隔。每行由 \r\n\ 分隔

简化示例如下:

测试字符串内容:

我想要 JUNK4| 之后的 "" (该行中 | 的第 5 次和第 6 次出现之间的内容)在上面的示例中被设为空/空白。我不希望该行其他位置的“”改变。下一行也需要发生同样的事情。

因此,我将以下正则表达式模式与 Java Matcher 和 Pattern 类结合使用如下:

但它正在替换每一行中所有出现的“”,这不符合我的要求。

我尝试了量词/POSIX {1},但徒劳地认为它会限制对 TestStr 中第一个“”的搜索,但徒劳无功。

使用 {1} 的正则表达式:

那么如何在模式中进行限制以获取字符串的片段直到第一个“”。

0 投票
6 回答
3383 浏览

java - 使用模式和匹配器的 Java 正则表达式

我的问题与 Java 中的正则表达式有关,特别是给定搜索模式的多个匹配项。我需要获取的所有信息都在 1 行,它包含一个映射到 IP 地址的别名(例如 SA)。每一个都用逗号分隔。我需要提取每一个。

我的 Reg Ex 看起来像这样:

这行得通,但我对此并不完全满意,因为自从引入了这一小段代码以来,我的程序已经放慢了一点(< 1 秒),但足以注意到差异。

所以我的问题是,我是否以正确的方式处理这个问题?是否有更有效或更轻量级的解决方案而不需要 while(match) 循环?和/或模式/匹配器类?

0 投票
2 回答
15758 浏览

java - 如何在匹配器组而不是整个模式上追加替换?

我正在使用 awhile(matcher.find())来遍历 Pattern 的所有匹配项。对于它找到的该模式的每个实例或匹配,我想matcher.group(3)用一些新文本替换。每个文本都不同,因此我使用matcher.appendReplacement()新的更改重建原始字符串。但是,appendReplacement()替换整个 Pattern 而不仅仅是组。

我怎样才能做到这一点,但只修改匹配的第三组而不是整个模式?

这是一些示例代码:

但我想做这样的事情(显然这不起作用)。

类似的东西,它只替换某个组,而不是整个 Pattern。

编辑:更改了正则表达式示例以显示并非所有模式都被分组。