我试图找到一个模式,使用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总收入"。
答案 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