簡體   English   中英

正則表達式在包含精確子字符串的括號之間找到整個子字符串

[英]Regex find whole substring between parenthesis containing exact substring

例如我有字符串:

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

我只需要帶括號的整個子串,包含單詞"back" ,對於這個字符串,它將是:

"(87 back sack)"

我試過了:

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

但它回歸"(78-45ack sack); now (87 back sack)"

我的正則表達式應該怎么樣? 正如我所理解的那樣,正在發生搜索從字符串的開頭開始,共同點 - 如何從字符串的中間執行正則表達式"search" ,從單詞"back"

您可以使用基於否定字符類的此正則表達式:

\([^()]*?back[^()]*\)
  • [^()]*匹配任何不是()字符的0或更多,因此確保我們不匹配(...)

RegEx演示1


或者,您也可以使用基於負正則表達式的此正則表達式:

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

RegEx演示2

  • (?!back|[()])是否定前瞻,斷言當前位置在文本中沒有back()前面。
  • (?:(?!back|\\)).)*? 匹配任何沒有back()前面的任何角色的0或更多。
  • [^)]*匹配任何東西但是)
h="one two  (78-45ack sack); now (87 back sack) follow dollow (59 uhhaaa)"
l=h.split("(")
[x.split(")")[0] for x in l if ")" in x and "back" in x]

嘗試以下模式以進行不情願的匹配

圖案= “\\(。*?\\)”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM