【问题标题】:Python 2.7 regular expression match issuePython 2.7 正则表达式匹配问题
【发布时间】:2016-06-29 07:45:55
【问题描述】:

假设我使用以下正则表达式进行匹配,从逻辑上讲,正则表达式意味着匹配前缀为foo: 的任何内容,并以不是空格的anything 结尾。匹配组将是部分排除前缀foo

我的问题是 Python 2.7 中的 anything 到底是什么意思?任何ASCII或?如果有人可以分享一些文件,那就太好了。谢谢。

a = re.compile('foo:([^ ]+)')

提前致谢, 林

【问题讨论】:

  • 这正是你写的:任何东西不是空格。
  • @MarounMaroun,感谢您的回答并投票。我的问题实际上是这里的 Anything 是什么,Python 2.7 中是否有 Anything 的字符表?

标签: python regex python-2.7


【解决方案1】:

试试:

a = re.compile('foo:\S*')

\S 表示除空格之外的任何内容。

我建议您查看http://pythex.org。 它非常适合测试常规表达式,并且有一个不错的备忘单。

更新:

任何东西 (.) 匹配任何东西,所有 unicode/UTF-8 字符。

【讨论】:

  • boogiehound,感谢您的回答并投票。我的问题实际上是这里的 Anything 是什么,Python 2.7 中是否有 Anything 的字符表?
  • 链接网站上的备忘单也有。
  • 我 99% 确定,任何事情都意味着任何事情。不需要字符表。我从来没有遇到过任何不匹配“任何东西”的字符的问题
  • @boogiehound,谢谢并投票。困惑你是什么意思.?在我原来的正则表达式中,没有.?
  • @LinMa 正则表达式中的点 (.) 符号匹配任何字符。请参阅链接中的备忘单。
【解决方案2】:

匹配任何字符的正则表达式元字符是.(点)。

a = re.compile('foo:(.+)')

字符类[^ ] 匹配任何不是方括号之间的字符之一的字符(在此示例中为文字空格)。量词+ 指定前面表达式的一个或多个重复。

【讨论】:

  • 感谢三人组,投赞成票。我发布的正则表达式将匹配任何内容,但不匹配空格,我的问题更多是关于这里 anything 的含义。 Anything 可以是任何字符、UTF-8、unicode、空格、不可打印字符,只要它们由 Python 2.7 str 等表示? 任何东西的确切含义是否有定义?
  • 重复:. 匹配任何一个字符(Unicode 字符,在现代 Python 中),[^ ] 匹配除空格之外的任何一个字符。重复意味着尽可能多地匹配同一个表达式。
  • 感谢 Tripleee,投票并将您的回复标记为答案。
猜你喜欢
  • 1970-01-01
  • 2011-07-17
  • 2016-11-27
  • 1970-01-01
  • 2016-11-29
  • 1970-01-01
相关资源
最近更新 更多