分组

时间:2018-03-26 15:40:41

标签: php regex

我有这些字符串:

something && otherthing
something || otherthing && something

如何单独编写与多行字符串匹配的正则表达式?

我试过了:

\w+\s+(&&|\|\|)\s+\w+

它的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

您可以这样做并重复\w+ (?:\|\||&&)一次或多次模式,然后以\w+结束:

(?:\w+ (?:\|\||&&) )+\w+

那将匹配:

  • (?:非捕获组
    • \w+匹配一个或多个单词字符,后跟空格
    • (?:非捕获组
      • \|\||&&匹配||或者&&
    • )关闭非捕获组并匹配空格
  • )+关闭非捕获组并重复一次或多次
  • \w+匹配一个或多个空格

修改:根据评论添加了从开头到结尾匹配的锚点:

^(?:\w+ (?:\|\||&&) )+\w+$

答案 1 :(得分:0)

这将匹配它:

(?:\w+ ?(?:&&|\|\|)? ?)+