3

我有一个字符串,其中包含ABC 12345但也包含ABC 98765.ABC 55555<

为了查找ABC然后识别我使用的以下数字序列

index = page.find('ABC',index)
t1 = page.find(' ',index+1)
t2 = page.find(' ',t1+4)

这给了我12345一个结果,但不是98765or 55555

如何更改第 3 行以查找空格和其他字符,例如.or <

我试过了

import re

t2 = re.search("\d", page,t1+4)

但是这种语法被破坏了。

4

1 回答 1

6

使用正则表达式查找文字文本ABC和可选空格后面的数字:

match = re.search(r'ABC\s*(\d+)', page)
if match:
    print match.group(1)

无论数字后面是什么,这都有效:

>>> re.search(r'ABC\s*(\d+)', 'ABC 98765.').group(1)
'98765'
>>> re.search(r'ABC\s*(\d+)', 'ABC 55555<').group(1)
'55555'

如果您需要查找多个匹配项,请findall()改用:

matches = re.findall(r'ABC\s*(\d+)', page)

它为您提供了文字文本后面的所有数字组的列表ABC

>>> re.findall(r'ABC\s*(\d+)', 'Some text with ABC 98765. There is some other text too, with ABC 55555<!')
['98765', '55555']
于 2013-03-10T12:24:52.853 回答