创建参数化Python正则表达式模式

2024-10-02 04:34:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用re-module创建正则表达式。 但是还不清楚如何以创建格式化字符串的类似方式创建模式,例如:我需要类似

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

这可能吗?在

当我使用

if myPattern.search(l) is not None:

我得到了

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


Tags: 字符串renoneformatsearchifis方式
1条回答
网友
1楼 · 发布于 2024-10-02 04:34:15

正如评论中提到的,myPattern只是一个字符串。“r”只是告诉Python它是一个“原始”字符串,不应该试图解释转义文本。在

一旦您按照自己喜欢的方式格式化了正则表达式(注意,由于您将参数命名为“linhead”,您将需要在format的参数中标识它:

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

您需要用re.compile()生成一个正则表达式对象。在

^{pr2}$

现在您可以按您最初的意图使用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

相关问题 更多 >

    热门问题