首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RegEx匹配某个单词的每次出现,但被某些字符打断

RegEx匹配某个单词的每次出现,但被某些字符打断
EN

Stack Overflow用户
提问于 2020-01-16 14:46:14
回答 1查看 51关注 0票数 0

我不是一个程序员,但我正试图锁定一些RegEx。我只是学到了一些基础知识,但没有学到多少其他的东西。我的意图是:我有一些格式化文本,其中出现了一些单词uses)。我希望获得uses) (和“使用”)后面的所有内容,但是如果它击中:或其他uses),以及第一个空格(因此匹配以非空白字符开始),则必须停止匹配。

示例案文:

代码语言:javascript
复制
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应该分别给我:

代码语言:javascript
复制
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)

直到现在我才想出了这个代码。

代码语言:javascript
复制
[^:,\s](.*?uses\))

这几乎匹配了所有的东西,但不幸的是,匹配并没有停止在:,从而匹配甚至其他文本,我不想匹配,得到这个,而不是我在这里写的:

代码语言:javascript
复制
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的示例

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-16 14:58:02

[^:,\s](.*?uses\))目前存在的问题是,序列.*?匹配任何字符序列,最终包括:。您想要做的是将通配符.替换为“任意字符但:",即[^:]

因此,[^:,\s]([^:]*?uses\))实现了您想要的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59772107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档