2024-10-02 04:34:15 发布
网友
我想用re-module创建正则表达式。 但是还不清楚如何以创建格式化字符串的类似方式创建模式,例如:我需要类似
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的参数中标识它:
format
myPattern = r'\s*{linehead}'.format(linehead="someText")
您需要用re.compile()生成一个正则表达式对象。在
re.compile()
现在您可以按您最初的意图使用myRegex:
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
正如评论中提到的,myPattern只是一个字符串。“r”只是告诉Python它是一个“原始”字符串,不应该试图解释转义文本。在
一旦您按照自己喜欢的方式格式化了正则表达式(注意,由于您将参数命名为“linhead”,您将需要在
format
的参数中标识它:您需要用
^{pr2}$re.compile()
生成一个正则表达式对象。在现在您可以按您最初的意图使用
myRegex
:或者,你可以按照@IceArdor的建议一次性完成:
见https://docs.python.org/2/library/re.html#module-re
相关问题 更多 >
编程相关推荐