用正则表达式省略数字

时间:2013-11-01 21:08:25

标签: python regex

我担心,这很简单,但我不能让它起作用(我无法通过搜索找到答案)。我正在为一个网站搜索所有斜体字(我想要的是两个字的组合 - 它们是二项式科学名称),但我不想要任何数字返回。

我使用的正则表达式:<i>(.+?)</i>

工作得很好,但它拉了数字。我认为使用\D会起作用,但事实并非如此。我做错了什么?

2 个答案:

答案 0 :(得分:2)

  

是的,我基本上想从标签内的任何字符串中去掉整数。

Python re.findall循环播放你的匹配代替数字字符应该适合你。

pattern = re.compile(r'(?<=<i>).*?(?=</i>)')

for names in re.findall(pattern, htmltext):
    print re.sub(r'[0-9]', '', names)

要查找不包含数字的匹配项:

matches = re.findall(r'(?<=<i>)[^0-9]*(?=</i>)', htmltext)
print matches

答案 1 :(得分:-1)

我认为它有效。你可以这样试试。     + ^ [0-9]