gpt4 book ai didi

python - 正则表达式查找括号之间包含确切子字符串的整个子字符串

转载 作者:行者123 更新时间:2023-11-30 22:49:54 25 4
gpt4 key购买 nike

例如我有字符串:

"one two  (78-45ack sack); now (87 back sack) follow dollow (59 uhhaaa)"

我只需要带括号的整个子字符串,包含单词“back”,对于这个字符串它将是:

"(87 back sack)"

我已经尝试过:

(\(.*?back.*?\))

但它返回“(78-45ack sack);现在(87 back sack)”

我的正则表达式应该是什么样子?据我了解,发生这种情况的原因是从字符串的开头进行搜索,共同点 - 如何从字符串的中间,从单词 “back” 执行正则表达式到 “search”

最佳答案

您可以根据否定字符类使用此正则表达式:

\([^()]*?back[^()]*\)
  • [^()]* 匹配 0 个或多个非 () 的任何字符,从而确保我们不会' t 匹配(...)对。

RegEx Demo 1

<小时/>

或者,您也可以基于负正则表达式使用此正则表达式:

\((?:(?!back|[()]).)*?back[^)]*\)

RegEx Demo 2

  • (?!back|[()]) 是负向前瞻,断言当前位置没有 back() 在文本前面。
  • (?:(?!back|\)).)*? 匹配 0 个或多个没有 back( ) 前面。
  • [^)]* 匹配除 ) 以外的任何内容。

关于python - 正则表达式查找括号之间包含确切子字符串的整个子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39558667/

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