捕获正确的组

时间:2017-02-27 04:30:07

标签: regex

在处理空格?字符时,我无法解析可选的量词,在(.+)之后无法正确解析可选文本。

Examples:用户只能使用这些输入:"","什么是","我想知道/喜欢知道是什么"。我提出了一个不正确的正则表达式(?:i )?(?:want to know |love to know )?what (.+)(?: is| are)?。在下面的捕获中,我需要所需的示例结果:big housebig houses

  • 正确捕捉:

    what big house
    
  • 捕获不正确:

    what big house is
    
    love to know what big houses are
    
    i want to know what big house is
    

2 个答案:

答案 0 :(得分:1)

以下正则表达式应该完成这项工作:

(?m)(?<=what\s).*?(?=\s(?:is|are|$))

参见 demo / explanation

答案 1 :(得分:0)

您写道:

  

我需要预期的结果:大房子和大房子。

然后你正在使用的正则表达式是big house[s]?