数字集和关键字的Python正则表达式

时间:2015-11-11 10:50:20

标签: python regex

我试图找到一个模式,使用re查找一系列数字,然后是一些关键词。

string =" 12390 total income stated in red followed by 567 total income stated in blue."
pattern = re.match("\s*\d{1,2}\s* total income",string)

我尝试了模式,但这并不好。 我想最终得到这些结果:" 12390总收入"和" 567总收入"。

2 个答案:

答案 0 :(得分:3)

您需要使用re.findall并将模式\d{1,2}更改为\d+一个或多个数字字符),因为\d{1,2}应该匹配最小1和最多2位数。

result = re.findall(r"\d+ total income",string)

请注意match尝试匹配findall应该进行全局匹配的字符串的开头。

答案 1 :(得分:0)

如果在 number 总收入之间有多个空格(例如1或2等),则使用非捕获组构造

Say string is

string = '12390total income stated in red followed by 567      total income stated in blue.'

然后尝试如下

myresult = re.findall(r"\d+(?:\s*?total income)",string)

摘录

['12390total income', '567      total income']

然后使用replace删除额外的空间。

enter code here