Javascript正则表达式分组问题

时间:2010-09-23 20:16:08

标签: javascript regex

我希望能够检测/挑选像:

这样的字符串
  

每人入场门票
  气球pp
  植树

即。描述后跟可选的“pp”或“每人”

我尝试(.+)\s+(per person|pp)并且有效;但pp|per person后缀不是可选的。

我尝试(.+)\s+(per person|pp)?(.+)\s+(per person|pp){0,1}使其成为可选项,但后来我得到“未定义第二个捕获组”。 奇怪的是,第一个捕获组包含“per”:

  

匹配:0 :(每个入口处的门票)
  1 :(入口处的门票)
  2 :(未定义)

     

(通过http://www.regextester.com/在线正则表达式测试员测试)

第二次捕获组我做错了什么?

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

^(.+?)\s*(per person|pp|)$

你可以这样读:

Starts with  
 (any characters but at least one and not in greedy mode)
 any space-characters
 ("per person" or "pp" or nothing)
end