【问题标题】:Python regular expression caret not working in multiline mode?Python正则表达式插入符号不能在多行模式下工作?
【发布时间】:2015-08-21 07:12:40
【问题描述】:

以下代码与多行字符串中的foo2 不匹配:

re.match("^foo2", "foo1\nfoo2\nfoo3",re.MULTILINE)

这是为什么呢? python.org 的文档说在 MULTILINE 模式下,插入符号 (^) 也匹配每行的开头。我也已经用r 尝试了“原始字符串”版本,不高兴。使用findall 也无济于事。 我显然在这里遗漏了一些东西..

【问题讨论】:

  • 使用searchmatch 将匹配锚定在字符串的开头。

标签: python regex


【解决方案1】:

参见re.match 文档:

请注意,即使在MULTILINE 模式下,re.match() 也只会匹配字符串的开头,而不是每行的开头。

您需要使用re.search

【讨论】:

  • 有趣的是,原始帖子不包含文档中的这一行。
  • 有趣吗? :-) 只是我很愚蠢,不阅读所有内容.. 另一方面,我认为如果 python 文档在 '$' 的解释中提到 match/search 问题会有所帮助
  • 请不要给自己起名字,我们只是人类,我们无法记住一切。提示:在 SO 上查找内容时,请在括号中使用标签并输入您的问题的关键字:[python][regex] match - 它肯定会为您提供很多有趣的帖子。
猜你喜欢
  • 1970-01-01
  • 2013-06-01
  • 1970-01-01
  • 2015-05-31
  • 1970-01-01
  • 1970-01-01
  • 2012-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多