精炼重新搜索

时间:2014-04-22 07:01:59

标签: regex python-2.7

我需要有关正则表达式的帮助。

line = "nadya carson nadya@gmail.com wxwwwgg 1235454 wmsiqrr 9gag2cm 9.9%"

在上面的示例中,我需要像上面的一行,我需要在电子邮件后提取字符串, wxwwwgg ' 。字符串恰好在电子邮件之后和数字之前。

我试过了:

>>> a = re.search(r'\s\w+\s\d',line)
>>> a
<_sre.SRE_Match object at 0x0271F640>
>>> a.group()
' wxwwwgg 1'

我有什么方法可以省略我的matchgroup中的数字字符。在上面的示例中,我只能获得&#39; wxwwwgg&#39;借助正则表达式中使用的任何搜索模式而不是r'\s\w+\s\d' 谢谢!

1 个答案:

答案 0 :(得分:1)

使用lookaround assertions。他们确保当前位置的(子)匹配可能,而不会使这些子匹配成为实际匹配的一部分:

a = re.search(r'(?<=\s)\w+(?=\s\d)', line)