[英]re.sub greedy characters
我想從以"\\"
開頭的字符串中刪除文本,例如:
\xf, \africa\87, \ckat\x70, ...
有沒有辦法在re.sub
使用貪婪的字符來做到這一點?
例如:
line = re.sub("[\.*]", "", line)
謝謝!
編輯:輸入示例:
" lorem ipsum \xe2\x80\x9csianhill7 lorem ipsum"
輸出:
" lorem ipsum lorem ipsum"
如果我正確理解了您的問題,則希望從句子中刪除所有非ascii前綴的單詞
您可以通過具有ordinal match
和filter
的single pass LC
輕松完成此操作,而無需使用regex
>>> data = " lorem ipsum \xe2\x80\x9csianhill7 lorem ipsum"
>>> ' '.join(e for e in data.split() if 31 < ord(e[0]) < 127)
'lorem ipsum lorem ipsum'
regex = re.compile(r"""
\\\S+\s*
""", re.VERBOSE)
line = r" lorem ipsum \xe2\x80\x9csianhill7 lorem ipsum"
replaced = regex.sub("", line)
請注意,您需要告訴python將'\\'視為常規字符而不是轉義字符。 這是通過在字符串前面添加r來完成的。
我還假設您要刪除所有以'\\'開頭的文本,包括下一個空格字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.