re.sub公司贪婪的角色

2024-04-18 23:39:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从字符串中删除以"\"开头的文本,例如:

 \xf, \africa\87, \ckat\x70, ...

有没有一种方法可以使用re.sub中的贪婪字符来实现这一点?在

例如:

^{pr2}$

谢谢!在

编辑: 输入示例:

" lorem ipsum \xe2\x80\x9csianhill7 lorem ipsum"

输出:

" lorem ipsum lorem ipsum"

Tags: 方法字符串文本re编辑示例字符xe2
3条回答
regex = re.compile(r"""
                    \\\S+\s*
                    """, re.VERBOSE)
line = r" lorem ipsum \xe2\x80\x9csianhill7 lorem ipsum"
replaced = regex.sub("", line)

请注意,您需要告诉python将'\'视为正则字符,而不是转义字符。这是通过在字符串前面添加r来完成的。在

我还假设您希望删除所有以“\”开头的文本,直到并包括下一个空格字符。在

如果我正确地理解了你的问题,你想从你的句子中删除所有非ascii前缀的单词

您可以很容易地通过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'

要匹配的表达式是:

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

使用lorem ipsum的输入文本,上面的表达式只匹配要删除的内部单词:)

example rubular

我在字符串中添加了一些其他正则表达式来匹配,,并在\之后使用*表示0或更多

^{pr2}$

another example

相关问题 更多 >