正则表达式在括号内有一个特定的词

时间:2019-03-07 06:55:55

标签: regex

我有这段文字:

  

近战长矛(达到10英尺,敏捷)+17,在其可触及范围内造成2d8 + 7伤害。 (到达)

我想用KK替换括号内的所有到达词:

  

近战长矛(KK 10英尺,敏捷)+17,在其可及范围内造成2d8 + 7穿刺伤害。 (KK)

我尝试了一些正则表达式,但是没有一个起作用。任何想法? (我使用php)

2 个答案:

答案 0 :(得分:0)

只要文本中没有嵌套/不平衡的括号,就可以使用此正则表达式仅在括号内匹配reach并替换为KK

reach(?=[^()]*\))

Demo

答案 1 :(得分:-1)

您可以使用捕获组并替换该捕获组,例如此正则表达式:

\(.*?(reach).*?\)

将创建捕获组,每个捕获组包含您要替换的单词的一个实例