簡體   English   中英

python 正則表達式匹配字符串多個條件之間的任何內容

[英]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

查看 Python 演示

請嘗試此代碼。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM