如何在正则表达式上捕获多个后续单词

时间:2016-06-17 06:27:38

标签: javascript regex

您好我创建了一个正则表达式,可以检测出问题所在的位置 "什么是_____?"

(?:what is ([a-zA-Z]+)\?)

只有当"什么是"之后的单词时,它才有效。只有一个字。

  

"什么是晚餐" //返回true

例如

,但如果我在我的问题中添加另一个单词

  

什么是早餐和午餐? //返回false

它返回false,我需要为我的问题中的后续单词添加什么才能在我的正则表达式模式中返回true?

3 个答案:

答案 0 :(得分:0)

您需要匹配空格分隔的单词,以便使用

php app/console doctrine:generate:entities MyProjectMyBundle/Entity/WallMessageCommentAnswer

Regex explanation here.

Regular expression visualization

答案 1 :(得分:0)

使用此正则表达式:(?:[Ww]hat is (([a-zA-Z]+\s*)+)\s*\?)

在此\1将返回"什么是"之后的部分。

试试here

(([a-zA-Z]+\s*)+)将匹配多个空格分隔的单词。

Regular expression visualization

答案 2 :(得分:0)

对于这种情况,可以有许多正则表达式的变体。
考虑以下简单的一个:

var str = "what is breakfast and lunch?",
    hasQuestion = /what is \w+?.+?$/.test(str);
    // . - matches any character except new line 
console.log(hasQuestion);  // true