gpt4 book ai didi

正则表达式捕获两个分隔符内出现的每个单词

转载 作者:行者123 更新时间:2023-12-04 14:52:13 25 4
gpt4 key购买 nike

假设我有一长串文本,我想每次捕获单词 this在圆括号中提到。我怎么能那样做?以下模式只匹配第一个 this , 忽略之后的每次出现:

/\(.*(this).*\)/g

例如,在以下文本中使用上述模式:

Etiam scelerisque, nunc ac egestas consequat, (odio this nibh euismod nulla, eget auctor orci nibh vel this nisi. Aliquam this erat volutpat).



只会返回第一个 this字后 odio .

我究竟做错了什么?

最佳答案

首先,不要贪心。
/\(.*?(this).*?\)/g
其次,如果您的目标是计算“this”的出现次数,那么正则表达式可能不是正确的工具。问题是您需要匹配结束定界符以确定第一个“this”是封闭的,这意味着继续应用正则表达式将不会匹配已经使用的定界符集中的任何内容。

我上面的正则表达式将捕获以下内容:
foo (baz this bar) (foo this)
但不是(它只会匹配两次,每组分隔符一次):
foo (this this bar) baz (this this this)
尝试使用简单的单程扫描仪而不是正则表达式。另一种选择是使用两个正则表达式,一个将字符串分成封闭和非封闭部分,另一个在封闭区域内搜索。

关于正则表达式捕获两个分隔符内出现的每个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3327794/

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