【问题标题】:common regex patterns for two strings [duplicate]两个字符串的常见正则表达式模式
【发布时间】:2018-07-17 06:14:09
【问题描述】:

我可以使用一种常见的正则表达式模式从以下两个字符串中获取组

告诉我不要害怕
向我展示光明和优雅

Regex: show me ([\w]+) (not ([\w]+)|and ([\w]+))

但我找不到下面的通用正则表达式:

给我看灯
向我展示光明和优雅

Regex: show me ([\w]+)| and ([\w]+)

它将第二个字符串中的“and grace”视为单独的匹配项,请您帮我找出错误

【问题讨论】:

标签: .net regex unix hdfs


【解决方案1】:

那是因为你把它放在一个单独的捕获组中。

Try something like this

show me (\w+) ?(not|and)? ?(\w+)?

【讨论】:

  • 谢谢它的工作!用“?”环绕如何?工作,就像你使用的那个?(not|and)?
  • 我没有用这些来包装它。 `?` 是有一个可选的空格,然后(not|and)? 是一个可选的非或,`?` 是另一个可选的空格,(\w+)? 是一个可选的单词。我将所有这些都设为可选,因此它也可以匹配“show me light”
  • 感谢您的解释。了解可选空间
【解决方案2】:

交替运算符|has the lowest precedence,因此您的第二个示例匹配show me ([\w]+)and ([\w]+)

这是regex matching both stringsshow me ([\w]+)( and ([\w]+))?

【讨论】:

    猜你喜欢
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多