使用正则表达式python获取模式后的句子

时间:2016-01-27 13:04:22

标签: python regex

在我的字符串中(从this turorial采用的示例)我希望在通用.模式之后的第一个(year).之前获取所有内容:

str = 'purple alice@google.com, (2002).blah monkey. (1991).@abc.com blah dishwasher'

我想我的代码几乎已经存在但尚未完成:

test = re.findall(r'[\(\d\d\d\d\).-]+([^.]*)', str)

...返回:['com, (2002)', 'blah monkey', ' (1991)', '@abc', 'com blah dishwasher']

所需的输出是:

['blah monkey', '@abc']

换句话说,我想找到年份模式和下一个点之间的所有内容。

3 个答案:

答案 0 :(得分:5)

如果您想在event.event和第一个(year).之间获取所有内容,可以使用此内容:

.

参见 Live Demo

并在此解释:

\(\d{4}\)\.([^.]*)

答案 1 :(得分:1)

您以错误的方式使用$count = 0; if($a==$b){ switch(true){ default: if($b==$c){ $count = $count + 3; break; // By this break you will be going out of switch and execute remaining code of $count++. } $count = $count + 5; // } $count++; } 。试试[...]

\(\d{4}\)\.([^.]*)\.

作为参考,>>> s = 'purple alice@google.com, (2002).blah monkey. (1991).@abc.com blah dishwasher' >>> re.findall(r'\(\d{4}\)\.([^.]*)\.', s) ['blah monkey', '@abc'] 指定character class。使用[...]您说的是:[\(\d\d\d\d\).-]之一。

答案 2 :(得分:1)

这应该可以解决问题

print re.findall(r'\(\d{4}\)\.([^\.]+)', str)
$ ['blah monkey', '@abc']