[英]Remove text from brackets if certain word exist inside brackets in python
我有一個示例字符串
s='((Xyz_lk) some stuff (XYZ_l)) (vbc vb XyZ vc))'
s = '((Xyz_lk) some stuff (XYZ_l)) (XyZ vc))'
s = '((Xyz_lk) some stuff (XYZ_l)) (vc XyZ))'
如果 XyZ 出現在括號內開始、結束的任何位置,則刪除該括號內的文本
output ='((Xyz_lk) some stuff (XYZ_l)))'
我怎樣才能在 Python 中以最簡單的方式做到這一點? 也許通過使用正則表達式(我不擅長)?
你可以做
re.sub(r"\s*\((\w|\s)*(xyz|XyZ)(\w|\s)*\)", "", s)
結果
'((Xyz_lk) some stuff (XYZ_l)))'
正則表達式\s*\((\w|\s)*(xyz|XyZ)(\w|\s)*\)
正在獲取任何空白字符,后跟 ( 后跟任何空白字符零或多個或單詞字符零或多於 XyZ 模式,然后是零個或多個空格字符或零個或多個單詞字符,后跟 )
你可以簡單地做到這一點。
1> 檢查天氣所需的字符串(XyZ)是否在給定的字符串中。
2> 獲得位置后,找到圍繞該字符串的括號的位置。
3> 跳過 output 字符串中的那部分字符串。
s='((Xyz_lk) some stuff (XYZ_l)) (vbc vb XyZ vc))'
if "XyZ" in s:
index = s.index("XyZ")
i = j = index
while s[i] != "(":
i -= 1
while s[j] != ")":
j += 1
output = (s[ :i] + s[j+1:])
print(output)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.