仅当内容具有某些单词时,正则表达式才删除括号和内部内容

Posted

技术标签:

【中文标题】仅当内容具有某些单词时,正则表达式才删除括号和内部内容【英文标题】:Regex to remove parentheses and inner contents only if contents have certain words 【发布时间】:2021-11-03 03:39:50 【问题描述】:

有人可以用正则表达式帮助我删除括号及其内部内容只有当里面有某些词时,不管这些词的位置和大小写如何?

例如,如果我的字符串中有括号,其中包含单词香蕉或苹果,则应删除这些括号及其内部内容。但是,如果有其他括号中没有这些单词,则不应删除它们。

示例:应删除包含单词 bananaapple 的括号:

“这是一个字符串(bla blabanana bla bla)另一组括号(bla bla)” “这是一个字符串(banana bla bla)另一组括号(bla bla)” “这是一个字符串(bla blabanana)另一组括号(bla bla)” “这是一个字符串(bla BANANA)另一组括号(bla bla)” “这是一个字符串(apple bla)另一组括号(bla bla)” “这是一个字符串(blaAPPLE bla)另一组括号(bla bla)”

应该变成

“这是一个字符串另一组括号(bla bla)”

非常感谢!

【问题讨论】:

【参考方案1】:

假设您正在使用正则表达式替换与其匹配的子字符串,您可以使用:\([^)]*word[^)]*\)

并用空字符串替换匹配项。

使用该正则表达式,您会在单词内部找到一个括号块,其中包含之前的任何字符。除右括号外的任何字符都表示该块已经结束。

【讨论】:

以上是关于仅当内容具有某些单词时,正则表达式才删除括号和内部内容的主要内容,如果未能解决你的问题,请参考以下文章

仅当没有给定前缀具有任意数量的空格时才匹配单词

42 python中正则中的分组 正则中匹配字符串的起始和结尾以及单词边界

Python正则表达式删除所有方括号及其内容

怎么通过正则表达删除含中文的括号部分但保留含英文的括号部分?

仅当 .includes() 使用 .find() 找到某些内容时才返回值

Javascript:仅当它是文本的第一个单词时才替换“x”,而不是其他任何地方