python正则表达式匹配字符串和多个条件之间的任何内容

2024-06-08 16:54:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把我的手弄脏

样本串

Info:Somestring-103409115825.Call
Info: BIL*ONL*00003.Avbl

目前,这与

>>> print(re.search(r'Info:(.*?).Call', payload).group(1))
Somestring-103409115825

>>> print(re.search(r'Info:(.*?).Avbl', payload).group(1))
BIL*ONL*00003

如何使正则表达式与这两个表达式匹配,如Info -- AnyString -- .Call|.Avbl


Tags: reinfosearch表达式groupcallpayload样本
2条回答

您可以在使用替换来匹配Call或Avbl之前转义点并放置它

\bInfo:(.*?)\.(?:Call|Avbl)\b

Regex demo

import re
 
pattern = r"\bInfo:(.*?)\.(?:Call|Avbl)\b"
 
print(re.search(pattern, "Info:Somestring-103409115825.Call").group(1))
print(re.search(pattern, "Info: BIL*ONL*00003.Avbl").group(1))

输出

Somestring-103409115825
 BIL*ONL*00003

如果不希望前导空格位于组值之前,可以使用:

\bInfo:\s*(.*?)\.(?:Call|Avbl)\b

See a Python demo

请尝试此代码

import re

payload1 = 'Info:Somestring-103409115825.Call'
payload2 = 'Info: BIL*ONL*00003.Avbl'

print(re.search(r'Info:(.*?)((.Call)|(.Avbl))', payload1).group(1))
print(re.search(r'Info:(.*?)((.Call)|(.Avbl))', payload2).group(1))

相关问题 更多 >