1

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

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

有没有办法使用贪婪的字符来做到这一点re.sub

例如:

line = re.sub("[\.*]", "", line)

谢谢!

编辑:输入示例:

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

输出:

" lorem ipsum lorem ipsum"
4

3 回答 3

3

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

您可以通过single pass LC使用ordinal matchfilter不使用来轻松地做到这一点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'
于 2013-01-21T17:01:14.993 回答
1

要匹配的表达式是:

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

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

示例红字

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

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

另一个例子

于 2013-01-21T16:39:03.230 回答
1
regex = re.compile(r"""
                    \\\S+\s*
                    """, re.VERBOSE)
line = r" lorem ipsum \xe2\x80\x9csianhill7 lorem ipsum"
replaced = regex.sub("", line)

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

我还假设您要删除以 '\' 开头的所有文本,直到并包括下一个空白字符。

于 2013-01-21T16:58:19.167 回答