[英]Javascript regex grouping question
I want to be able to detect/pick apart strings like : 我希望能够检测/拾取像这样的字符串:
tickets at entrance per person
每人入口门票
ballons pp气球pp
tree planting植树
ie a description followed by an optional "pp" or "per person" 即描述,后跟可选的“ pp”或“每人”
I try (.+)\\s+(per person|pp)
and that works; 我尝试
(.+)\\s+(per person|pp)
,这行得通; but the pp|per person
suffix is then not optional. 但是
pp|per person
后缀不是可选的。
I try (.+)\\s+(per person|pp)?
我尝试
(.+)\\s+(per person|pp)?
or (.+)\\s+(per person|pp){0,1}
to make it optional, but then I get "undefined for the second capture group". 或
(.+)\\s+(per person|pp){0,1}
将其设为可选,但随后我得到“对于第二个捕获组未定义”。 Curiously the first capture group contains the "per": 奇怪的是,第一个捕获组包含“ per”:
matches: 0: (tickets at entrance per )
匹配:0 :(每个入口的门票)
1: (tickets at entrance per)1 :(每张门票)
2: (undefined)2 :(未定义)
(tested via http://www.regextester.com/ online regex tester)
(通过http://www.regextester.com/在线regex测试仪进行了测试)
What am I doing wrong with that second capture group ? 第二个捕获组我在做什么错?
You can try this : 您可以尝试以下方法:
^(.+?)\s*(per person|pp|)$
You can read it like this : 您可以这样阅读:
Starts with
(any characters but at least one and not in greedy mode)
any space-characters
("per person" or "pp" or nothing)
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.