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