簡體   English   中英

創建參數化的Python正則表達式模式

[英]Create parameterized Python regular expression pattern

我想使用re模塊創建正則表達式。 但目前尚不清楚如何以類似於創建格式化字符串的方式來創建模式,例如:我需要類似

myPattern = r'\s*{linehead}'.format(someText)

這可能嗎?

當我使用

if myPattern.search(l) is not None:

我越來越

AttributeError: 'str' object has no attribute 'search'

如評論中所述,myPattern只是一個字符串。 “ r”只是告訴Python,它是一個“原始”字符串,不應嘗試解釋轉義的文本。

將正則表達式設置為喜歡的格式后(請注意,由於將參數命名為“ linhead”,因此需要在format參數中對其進行標識:

myPattern = r'\s*{linehead}'.format(linehead="someText")

您需要使用re.compile()創建一個正則表達式對象。

myRegex = re.compile(myPattern)

現在,您可以按預期使用myRegex

if myRegex.search(l) is not None:
    ...

或者,您可以按照@IceArdor的建議一次性完成所有操作:

myPattern = re.compile(r'\s*{linehead}'.format(linehead="someText");

參見https://docs.python.org/2/library/re.html#module-re

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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