Python 关于次贪婪字符

Python 关于次贪婪字符,python,regex,string,Python,Regex,String,我想从字符串中删除以“\”开头的文本,例如: \xf, \africa\87, \ckat\x70, ... 在re.sub中是否有使用贪婪字符的方法 e、 g: 谢谢 编辑: 输入示例: " lorem ipsum \xe2\x80\x9csianhill7 lorem ipsum" 输出: " lorem ipsum lorem ipsum" 要匹配的表达式为: [\b\\][\w]+,? 使用您输入的lorem ipsum文本,上述表达式只匹配您要删除的内部单词:) 我在字符串

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

 \xf, \africa\87, \ckat\x70, ...
re.sub
中是否有使用贪婪字符的方法

e、 g:

谢谢

编辑: 输入示例:

" lorem ipsum \xe2\x80\x9csianhill7 lorem ipsum"
输出:

" lorem ipsum lorem ipsum"

要匹配的表达式为:

[\b\\][\w]+,?
使用您输入的lorem ipsum文本,上述表达式只匹配您要删除的内部单词:)

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

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

要匹配的表达式是:

[\b\\][\w]+,?
使用您输入的lorem ipsum文本,上述表达式只匹配您要删除的内部单词:)

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

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

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

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

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


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

如果我正确理解您的问题,您希望删除句子中所有非ascii前缀单词

您可以通过
单通LC
顺序匹配
过滤器
轻松完成,而无需使用
正则表达式

>>> 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'
data=“lorem ipsum\xe2\x80\x9csianhill7 lorem ipsum” >>>''.join(e表示数据中的e.split()如果31如果我正确理解了您的问题,您希望从句子中删除所有非ascii前缀单词

您可以通过
单通LC
顺序匹配
过滤器
轻松完成,而无需使用
正则表达式

>>> 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'
data=“lorem ipsum\xe2\x80\x9csianhill7 lorem ipsum” >>>''.join(e表示数据中的e.split()如果31
您可能应该添加一个输入和输出示例。
\xe2
真的是
\xe2
,还是它是指ASCII代码为0xe2的字符?我相信它是指ASCII代码为0xe2的字符,但在我的文本中它显示为\xe2。您可能应该添加一个输入和输出示例。
\xe2
真的是
\xe2
吗,或者它是指ASCII码为0xe2的字符?我相信它是指ASCII码为0xe2的字符,但在我的文本中它显示为\xe2。使用line=re.sub(“[\b^\][\w]+,?”,“,”,line)实际上删除了除以“\”开头的字符串以外的所有字符。。。我不确定我是否做错了什么?似乎对我不起作用,同样的问题再次出现,它只保留以\开头的字符串,并删除其他所有内容。我认为您调用了错误的方法来删除/保留结果-rubular隔离了正确的部分,您只需在正则表达式上使用正确的方法即可。我查看了文档,我认为您对.sub的调用缺少argsEDIT:在上次编辑中使用
[\b\\][\w,]*
-typo该死的
^
我以为我已经删除了使用line=re.sub(“[\b^\][\w]+,?,”,line)实际上删除了除以“\”开头的字符串以外的所有内容。。。我不确定我是否做错了什么?似乎对我不起作用,同样的问题再次出现,它只保留以\开头的字符串,并删除其他所有内容。我认为您调用了错误的方法来删除/保留结果-rubular隔离了正确的部分,您只需在正则表达式上使用正确的方法即可。我看了一下文档,我想你对.sub的调用缺少了argsEDIT:use
[\b\\\][\w,]*
-在上次编辑中键入该死的
^
我想我已经删除了我想
31
更好,因为
chr(31)='\x1f'
@AshwiniChaudhary:谢谢。。。我猜
31
更好,因为
chr(31)='\x1f'
@AshwiniChaudhary:谢谢。。。点Takenthank你,虽然我不能真的在字符串前面添加“r”,因为如果你直接从文件中读取,我用open(“..…csv”)导入它,那么就不需要“r”。仅当您想在单独的示例上测试代码时才需要它。谢谢,尽管我不能在字符串前面添加“r”,因为如果您直接从文件中读取,我使用open(“…..csv”)导入它,那么就不需要“r”。只有当您想在单独的示例上测试代码时才需要它。