我需要在 Python 中處理文本并替換任何出現的"[xz]"by "x",其中"x"括號中的第一個字母"z"是可變長度的字串。請注意,我不想要輸出中的括號。
例如,"alEhos[cr@e]sjt"應該變成"alEhoscsjt"
我認為re.sub()可能是一種方法,但我不確定如何實施它。
uj5u.com熱心網友回復:
這將適用于給出的示例。
import re
example = "alEhos[cr@e]sjt"
result = re.sub(r'(.*)\[(.).*\](.*)', r'\1\2\3', example)
print(result)
正則運算式使用三個捕獲組。\1并\3捕獲方括號前后的文本。\2捕獲括號內的第一個字符。
輸出:
alEhoscsjt
如果您的字串中有多個方括號出現,您可以使用以下內容:
example = "alEhos[cr@e]sjt[abc]xyz"
result = re.sub(r'\[(.).*?\]', r'\1', example)
print(result)
此版本用括號內的第一個字符替換所有括號內的子字串(包括括號)。(注意使用非貪婪限定符來避免消耗 first[和 last之間的所有內容]。)
輸出:
alEhoscsjtaxyz
uj5u.com熱心網友回復:
re.sub()您可以使用該re.findall()方法查找所有以正確方括號開頭和結尾的子字串(以非貪婪的方式),而不是直接使用該方法。
然后,遍歷匹配項并使用該str.replace()方法將字串中的每個匹配項替換為匹配項中的第二個字符:
import re
s = "alEhos[cr@e]sjt"
for m in re.findall("\[.*?\]", s):
s = s.replace(m, m[1])
print(s)
輸出:
alEhoscsjt
uj5u.com熱心網友回復:
您可以使用以下split()方法:
str1 = "alEhos[cr@e]sjt"
lst1 = str1.split("[")
lst2 = lst1[1].split("]")
print(lst1[0] lst2[0][0] lst2[1])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/382313.html
下一篇:提取字串前后字符的一部分
