[英]Get a string between two variable strings that contain regex specific characters using python
所以我有一個這樣的字符串:
r'irrelevant data (~symbol)relevant data(/~symbol) irrelevant data'
並希望獲得相關數據。 但是,(~symbol)標簽是可變的,這意味着為了找到相關的正則表達式短語,我們需要 go 類似
tags = ["(~symbol)","(/~symbol)"]
string = r'irrelevant data (~symbol)relevant data(/~symbol) irrelevant data'
regex = r'{}([^"]*){}'.format(tags[0],tags[1])
result = re.findall(regex , string)[0]
問題是我們的標簽包含在正則表達式中使用時需要轉義的字符,因此在這種情況下,結果將包含標簽本身,而不僅僅是所需的字符串。
有沒有不涉及替換的好解決方案?
您的問題有很多,所以我將嘗試一一解決:
對於您的示例,它將是這樣的:
import re
patterns = ["(~symbol)", "(/~symbol)"]
string = r'irrelevant data (~symbol)relevant data(/~symbol) irrelevant data'
result = re.split('(?:' + '|'.join(map(re.escape, patterns)) + ')', string)
然后給出
['irrelevant data ', 'relevant data', ' irrelevant data']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.