我正在尝试编写一个正则表达式以在 Java 程序中使用,该程序将识别可能出现在输入中未知次数的模式。我愚蠢的小例子是:
String patString = "(?:.*(h.t).*)*";
然后我尝试通过循环 matcher.group(i) 从“小屋很热”之类的行中访问匹配项。它只记住最后一个匹配项(在这种情况下,“热”),因为只有一个捕获组——我猜 matcher.group(1) 的内容会在捕获组被重用时被覆盖。不过,我想要的是某种同时包含“小屋”和“热”的数组。
有一个更好的方法吗?FWIW,我真正想做的是在信号词之后拿起所有(可能是多词)专有名词,中间可能有其他词和标点符号。因此,如果“saw”是信号并且我们有“我看到 Bob 和 John Smith 以及他的妻子 Margaret”,我想要 {"Bob","John Smith","Margaret"}。