我正在尝试使用正则表达式从python中的字符串中删除@tags但是当我尝试这样做时
str = ' you @warui and @madawar '
h = re.search('@\w*',str,re.M|re.I)
print h.group()
它仅输出第一个@tag。
@warui
当我在http://regexr.com?304a6上尝试时,它可以正常工作
答案 0 :(得分:5)
“使用正则表达式从字符串中删除@tags”
import re
text = ' you @warui and @madawar '
stripped_text = re.sub(r'@\w+', '', text)
# stripped_text == ' you and '
或者你想提取吗?
import re
text = ' you @warui and @madawar '
tags = re.findall(r'@\w+', text)
# tags == ['@warui', '@madawar']
@tag定义为@
,后跟至少一个字母数字字符,这就是@\w+
优于@\w*
的原因。此外,您不需要修改区分大小写,因为\w
匹配较低和较高的字符。
答案 1 :(得分:3)
import re
s = ' you @warui and @madawar '
for h in re.findall('@\w*',s,re.M|re.I):
print h
打印:
@warui
@madawar
答案 2 :(得分:3)
re.search()
只匹配一次出现的模式。如果您想了解更多信息,请尝试使用re.findall()
。