umb*_*ile 3 java regex capture-group
我正在尝试编写一个正则表达式,以便在Java程序中使用,该程序将识别可能在输入中出现未知次数的模式.我愚蠢的小例子是:
String patString = "(?:.*(h.t).*)*";
然后我尝试通过循环matcher.group(i)从"小屋很热"这样的行访问匹配.它只会记住最后一个匹配(在这种情况下,"热"),因为只有一个捕获组 - 我猜想matcher.group(1)的内容会被重写,因为捕获组会被重用.我想,虽然是某种含有阵列的两个 "小屋"和"热".
有一个更好的方法吗?FWIW,我真正想做的是在信号词之后拾取所有(可能是多字的)专有名词,其间可能有其他单词和标点符号.因此,如果"锯"是信号,我们"我看见鲍勃与约翰史密斯,他的妻子玛格丽特,"我想要{"鲍勃","约翰史密斯","玛格丽特"}.
(类似问题:具有可变数量的组的正则表达式?)
这是不可能的.您最好的选择是使用h.t,并使用
while (matcher.find()) {
...
... matcher.group(1); ...
...
}
Run Code Online (Sandbox Code Playgroud)
该功能确实存在于.NET中,但如上所述,Java中没有对应的功能.
| 归档时间: |
|
| 查看次数: |
3997 次 |
| 最近记录: |