re.sub 贪婪字符
我想从我的字符串中去掉那些以"\"
开头的文本,比如:
\xf, \africa\87, \ckat\x70, ...
有没有办法使用贪婪字符在re.sub
中做到这一点呢?
例如:
line = re.sub("[\.*]", "", line)
谢谢!
编辑:
输入示例:
" lorem ipsum \xe2\x80\x9csianhill7 lorem ipsum"
输出:
" lorem ipsum lorem ipsum"
3 个回答
1
regex = re.compile(r"""
\\\S+\s*
""", re.VERBOSE)
line = r" lorem ipsum \xe2\x80\x9csianhill7 lorem ipsum"
replaced = regex.sub("", line)
注意,你需要告诉Python把'\'当作普通字符来处理,而不是当作转义字符。你可以在字符串前面加一个r来实现这一点。
我还假设你想要删除所有从'\'开始的文本,一直到下一个空格字符为止,包括这个空格。
3
如果我理解你的问题没错的话,你是想从你的句子中去掉所有不是ASCII字符开头的单词。
你可以通过一次简单的循环来做到这一点,使用ordinal match
和filter
,而不需要用到正则表达式
。
>>> 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'