簡體   English   中英

如果 python 中的括號內存在某些單詞,則從括號中刪除文本

[英]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.

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