gpt4 book ai didi

java - 正则表达式匹配某个单词的每次出现但被某些字符中断

转载 作者:行者123 更新时间:2023-12-01 18:48:41 25 4
gpt4 key购买 nike

我不是程序员,但我正在尝试完善一些正则表达式。我只学到了一些基础知识,没有学到太多其他知识。我的意图如下:我有一些格式化文本,其中出现了一些单词 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)

正则表达式应该分别给我:

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)

如何删除我不需要的额外文本?这是代码为 https://regexr.com/4sbtf 的示例

最佳答案

您当前遇到的问题是 [^:,\s](.*?uses\)) 序列 .*? 与任何字符序列匹配,最终包括 :。您想要做的是将通配符 . 替换为“除 : 之外的任何字符”,即 [^:]
[^:,\s]([^:]*?uses\)) 从而实现你想要的。

关于java - 正则表达式匹配某个单词的每次出现但被某些字符中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59772107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com