问题标签 [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.
java - java正则表达式匹配器
我正在尝试从 10 个网站获取数据,如果您只打印出每个组本身,它就可以正常工作,例如:system.out.println(courseCode); 打印出 10 个 courseCode 的列表,但是当我尝试将它们添加到这些向量中时,它只添加最后一个 courseCode 而不是每个。所以每个向量应该有 10 个元素,但它们只有 1 个。有没有办法喜欢遍历匹配项?
java - 如何用后处理值替换正则表达式组?
我有这个代码
输入是:
输出示例:
我想用该方法返回的选取值替换 {} 组模板。我如何在 Java1.5 中做到这一点?
scala - 如何使用规格测试框架从 Matcher[A] 组成 Matcher[Iterable[A]]
如果我有一个 Matcher[A] 如何创建一个 Matcher[Iterable[A]] 只有当 Iterable 的每个元素都满足原始 Matcher 时才满足。
java - Java Split 未按预期工作
我正在尝试使用简单的拆分来分解以下字符串:00-00000
我的表达是:^([0-9][0-9])(-)([0-9])([0-9])([0-9])([0-9])([0-9])
我的用法是:
如果我使用 Pattern 和 Matcher 类,我可以看到我的模式确实匹配,并且匹配器告诉我我的 groupCount 是 7,这是正确的。但是当我尝试拆分它们时,我没有运气。
java - 找到匹配项,但如何提取数据?
我有以下正则表达式(abc|def)( ?(\\d+|(?:(?!\\1)[a-z])+)?)*
与主题完全匹配abc123 456
。
现在我想得到所有部分abc,123和456。
我使用以下代码:
但所以我只得到abc123 456
.
欢迎任何想法。
java - java正则表达式问题
我想要一个可以匹配的正则表达式
<FONT FACE=\"Verdana\" SIZE=\"12\"> My Name is xyz </FONT>
或
<LI><FONT FACE=\"Verdana\" SIZE=\"12\"> My Name is xyz </FONT></LI>
它不应该是贪婪的
java - java正则表达式匹配
可以匹配以下2个字符串的正则表达式是什么。
Hi<Dog>Hi
并<Dog>
在给定的文本中。
更新:
什么正则表达式会匹配这个?
<FONT.*?<\/FONT>
只匹配到第一个</FONT>
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} 的正则表达式:
那么如何在模式中进行限制以获取字符串的片段直到第一个“”。
java - 使用模式和匹配器的 Java 正则表达式
我的问题与 Java 中的正则表达式有关,特别是给定搜索模式的多个匹配项。我需要获取的所有信息都在 1 行,它包含一个映射到 IP 地址的别名(例如 SA)。每一个都用逗号分隔。我需要提取每一个。
我的 Reg Ex 看起来像这样:
这行得通,但我对此并不完全满意,因为自从引入了这一小段代码以来,我的程序已经放慢了一点(< 1 秒),但足以注意到差异。
所以我的问题是,我是否以正确的方式处理这个问题?是否有更有效或更轻量级的解决方案而不需要 while(match) 循环?和/或模式/匹配器类?
java - 如何在匹配器组而不是整个模式上追加替换?
我正在使用 awhile(matcher.find())
来遍历 Pattern 的所有匹配项。对于它找到的该模式的每个实例或匹配,我想matcher.group(3)
用一些新文本替换。每个文本都不同,因此我使用matcher.appendReplacement()
新的更改重建原始字符串。但是,appendReplacement()
替换整个 Pattern 而不仅仅是组。
我怎样才能做到这一点,但只修改匹配的第三组而不是整个模式?
这是一些示例代码:
但我想做这样的事情(显然这不起作用)。
类似的东西,它只替换某个组,而不是整个 Pattern。
编辑:更改了正则表达式示例以显示并非所有模式都被分组。