python替换不同随机名称的名称
我想用不同的名字来替换这些句子,但我不知道为什么它会起作用python替换不同随机名称的名称,python,replace,Python,Replace,我想用不同的名字来替换这些句子,但我不知道为什么它会起作用 text="hi, my name is angle enrico, how is everything going?" s = text.replace(r'hi, my name is\s+','') print(s) 我想有一个输出“一切都好吗?”,但我得到的是“嗨,我的名字是安格尔·恩里科,一切都好吗?” 有人知道怎么解决吗 看起来您正试图在非正则表达式上下文中使用正则表达式语法。您的代码当前正在搜索文本字符串hi,我的名字是
text="hi, my name is angle enrico, how is everything going?"
s = text.replace(r'hi, my name is\s+','')
print(s)
我想有一个输出“一切都好吗?”,但我得到的是“嗨,我的名字是安格尔·恩里科,一切都好吗?”
有人知道怎么解决吗 看起来您正试图在非正则表达式上下文中使用正则表达式语法。您的代码当前正在搜索文本字符串
hi,我的名字是\s+
,它显然不存在于您的输入字符串中
您需要做的是编写一个正则表达式来捕获字符串的开头,然后将其传递到文本中。替换尝试使用:
s = text.replace('hi, my name is','')
print(' '.join(s.split()[2:]))
或:
两者都再现了:
how is everything going?
您需要使用正则表达式和模块
您想替换字符串中以“Hi,my name is”开头的部分,后跟任何内容(*
),然后是逗号和至少一个空格(,\s+
)
如果句子的结尾也可以包含逗号,则需要取尽可能小的“任何东西”,因此必须以非贪婪的方式(*?
)执行
因此,你可以:
import re
text="hi, my name is angle enrico, how is everything going?"
s = re.sub(r'hi, my name is .*?,\s+', '', text)
print(s)
#how is everything going?
它还与句子中的第二个逗号连用:
text="hi, my name is fred, I'm fine, thanks!"
s = re.sub(r'hi, my name is .*?,\s+', '', text)
print(s)
#I'm fine, thanks!
如果您试图编写代码的规则是删除“嗨,我的名字是angle enrico”,然后text.replace(“嗨,我的名字是angle enrico,”,”)
我有许多不同的名字的不同句子,那么我正在做的\s+而不是不常用的名字,您能获得更多的示例输入和期望的输出吗?
import re
text="hi, my name is angle enrico, how is everything going?"
s = re.sub(r'hi, my name is .*?,\s+', '', text)
print(s)
#how is everything going?
text="hi, my name is fred, I'm fine, thanks!"
s = re.sub(r'hi, my name is .*?,\s+', '', text)
print(s)
#I'm fine, thanks!