繁体   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