[英]Python Regex with variable substitution
我正在嘗試生成一個正則表達式,其中包含帶有數字出現次數的數字搜索。 但是,正則表達式還包含幾個其他變量,需要替換這些變量才能獲得最終的正則表達式字符串。 稍后我將在模式匹配中使用這個正則表達式字符串(在變量替換之后)。
所需的最終正則表達式字符串是: r"DWH_CUST_X012_\d{8}_\d{6}\.xml"
我嘗試了什么:
PRCS = "CUST"
BATCH = "X012"
pattern = rf"DWH_{PRCS}_{BATCH}_\d{8}_\d{6}\.xml"
regex = re.compile(pattern)
不幸的是,這是將字符串中存在的 {8} 和 {6} 視為替換的候選者,因此會引發錯誤。
所需的最終正則表達式字符串是: r"DWH_CUST_X012_\d{8}_\d{6}\.xml"
如何替換 {PRCS} 和 {BATCH_ID} 變量的值而不干擾正則表達式字符串中的{8}
和{6}
(出現次數),以便以后可以將此字符串用作正則表達式。
很高興提供更多信息。
謝謝。
您可以使用 C 風格的字符串格式:
import re
PRCS = "CUST"
BATCH = "X012"
pattern = r"DWH_%s_%s_\d{8}_\d{6}\.xml" % (PRCS, BATCH)
example_string = """
DWH_CUST_X012_01234567_012345.xml
DWH_CUST_X012_0123abcd_0123.xml
"""
matches = re.findall(pattern, example_string)
print(matches)
# ['DWH_CUST_X012_01234567_012345.xml']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.