[英]python regex match anything between string multiple conditions
我正試圖弄臟正則表達式。
示例字符串
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
?
您可以在使用交替匹配 Call 或 Avbl 之前轉義點並將其放置
\bInfo:(.*?)\.(?:Call|Avbl)\b
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))
Output
Somestring-103409115825
BIL*ONL*00003
如果您不希望組值之前的前導空格,您可以使用:
\bInfo:\s*(.*?)\.(?:Call|Avbl)\b
請嘗試此代碼。
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))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.