Python 正则表达式到搜索词后的 return 个字符
Python regex to return characters after a search term
我正在尝试使用正则表达式从一些字符串中提取信息
我可以使用 re.search
找到文本,但是如何获取搜索词后提供的信息?
格式Ref number ABC123456Ref date 01.01.2000
如何才能returnABC123456
和01.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'
我正在尝试使用正则表达式从一些字符串中提取信息
我可以使用 re.search
找到文本,但是如何获取搜索词后提供的信息?
格式Ref number ABC123456Ref date 01.01.2000
如何才能returnABC123456
和01.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'