Python 正则表达式到搜索词后的 return 个字符

Python regex to return characters after a search term

我正在尝试使用正则表达式从一些字符串中提取信息

我可以使用 re.search 找到文本,但是如何获取搜索词后提供的信息?

格式Ref number ABC123456Ref date 01.01.2000如何才能returnABC12345601.01.2000?

import re
reqd_info = "Ref number"
test_text = 'Ref number ABC123456Ref date 01.01.2000'
res = re.search(reqd_info, test_text)

您可以通过将正则表达式更改为

来实现此效果
<YOUR SEARCHTERM>(.*)

这样,结果就有一个包含剩余信息的组。

我不熟悉regex,但也可以做到:

test_text = 'Ref number ABC123456Ref date 01.01.2000'
reqd_info = "Ref number"

text = test_text.replace(reqd_info, "").strip() # get rid of Ref number and strip leading and trailing spaces
ref_number, _, date = text.split(" ") # split at spaces

print(ref_number, date)

输出:

ABC123456Ref 01.01.2000

以上代码可以精简为一行,如果想要短代码:

test_text = 'Ref number ABC123456Ref date 01.01.2000'
reqd_info = "Ref number"

print(*test_text.replace(reqd_info, "").strip().split(" ")[::2])

您可以在正则表达式中使用组,然后使用 re.findall 获取包含匹配组的元组列表。

In [1]: import re

In [2]: test_text = 'Ref number ABC123456Ref date 01.01.2000'

In [3]: re.findall("Ref number (.*)Ref date (.*)", test_text)
Out[3]: [('ABC123456', '01.01.2000')]

In [4]: [[number, date]] = re.findall("Ref number (.*)Ref date (.*)", test_text)

In [5]: number
Out[5]: 'ABC123456'

In [6]: date
Out[6]: '01.01.2000'