从python中的字符串中剥离@标签

时间:2012-02-24 10:44:17

标签: python regex

我正在尝试使用正则表达式从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上尝试时,它可以正常工作

3 个答案:

答案 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()