[英]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");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.