Java 正则表达式匹配某个单词的每次出现,但被某些字符打断

Java 正则表达式匹配某个单词的每次出现,但被某些字符打断,java,Java,我不是一个程序员,但我正在努力掌握一些正则表达式。我只学了一些基础知识,其他的不多。 我的意图如下:我有一些格式化文本,其中出现了一些单词uses)。我想获得uses)(和“uses)”)后面的所有内容,但如果匹配到:或其他出现的uses),以及第一个空格(以便匹配以非空格字符开始),则必须停止 示例文本: Second Wind (Recharge 5-6) (1/1 uses). The Veteran can use a bonus action to regain hit points

我不是一个程序员,但我正在努力掌握一些正则表达式。我只学了一些基础知识,其他的不多。 我的意图如下:我有一些格式化文本,其中出现了一些单词
uses)
。我想获得
uses)
(和“uses)”)后面的所有内容,但如果匹配到
或其他出现的
uses)
,以及第一个空格(以便匹配以非空格字符开始),则必须停止

示例文本:

Second Wind (Recharge 5-6) (1/1 uses). The Veteran can use a bonus action to regain hit points equal to 14 (1d10 + 9).

Spellcasting.
3/day each: Jump (3/3 uses), Darkness (3/3 uses), Burning Hands (3/3 uses)

Spellcasting.
1st level (4 slots): Ray Of Sickness, Witch Bolt, Tasha's Hideous Laughter (4/4  uses)
RegEx应该分别给我:

Second Wind (Recharge 5-6) (1/1 uses)
Jump (3/3 uses)
Darkness (3/3 uses)
Burning Hands (3/3 uses)
Ray Of Sickness, Witch Bolt, Tasha's Hideous Laughter (4/4  uses)
直到现在我才想出这个代码

[^:,\s](.*?uses\))
这几乎可以正确匹配所有内容,但不幸的是,匹配并没有在
处停止,因此匹配了我不想匹配的其他文本,得到的不是我在这里写的内容:

Second Wind (Recharge 5-6) (1/1 uses)
3/day each: Jump (3/3 uses)
Darkness (3/3 uses)
Burning Hands (3/3 uses)
1st level (4 slots): Ray Of Sickness, Witch Bolt, Tasha's Hideous Laughter (4/4  uses)

我怎样才能摆脱我不需要的额外文本?下面是代码的示例您当前在
[^:,\s](.*?uses\)
中遇到的问题是序列
*?
匹配任何字符序列,最终包括
。 您要做的是将通配符
替换为“除:”以外的任何字符,即
[^::]


[^:,\s]([^::*?uses\)
从而实现你想要的。

只匹配
[^:,\s][^:*?uses\)
或捕获
([^:,\s][^:*?uses\)
。哦,老兄,非常感谢!我尝试了类似的方法,但我认为我没有删除
,而且它不起作用