簡體   English   中英

重新貪婪字符

[英]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 matchfiltersingle 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'

要匹配的表達式是:

[\b\\][\w]+,?

並使用您的lorem ipsum輸入文本,上述表達式僅與您要刪除的內部單詞匹配:)

例子

我在字符串中添加了其他正則表達式進行匹配,並在\\之后使用*表示0或更多

[\b\\][\w.,]*

另一個例子

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.

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