繁体   English   中英

Python正则表达式与行启动不匹配

[英]Python regex does not match line start

我有一个包含一些数据的文本文件:

... 
DATA_ARRAY Some[] =
{
...
};

我有一个像这样的python 2.7正则表达式:

regx = re.compile("^DATA_ARRAY Some\[\].*?};", re.DOTALL)
regmatch = re.search(regx, data)
print regmatch.group(0)

问题是正则表达式与任何东西都不匹配(regmatch是None)。 如果我删除^然后它匹配就好了。

我在这里做错了什么? 我想添加行开始搜索符号。

修饰符^强制你的正则表达式引擎匹配字符串开头的正则表达式。 由于您的字符串不以DATA_ARRAY开头,因此返回None

正如@nanny所提到的如果你也希望它匹配每一行的开头,请使用re.MULTILINE标志:

regx = re.compile("^DATA_ARRAY Some\[\].*?};", re.DOTALL|re.MULTILINE)

如果你添加一个re.MULTILINE标志它应该工作。

这将使标志看起来像re.MULTILINE|re.DOTALL

^检查字符串的开头..添加re.MULTILINE标志。

regx = re.compile("^DATA_ARRAY Some\[\].*?};", re.MULTILINE|re.DOTALL)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM