我有一个模式:
var patt = /((name)|(names)*)/g;
我有一个匹配的字符串:
var word = "namesnames";
字是按照模式逻辑,但word.match(patt)返回:
["name", "", "name", "", ""]
哪个错了! 我想从匹配中得到“namesnames”的结果, 请帮我。 感谢。
答案 0 :(得分:0)
如果我理解你想要什么,你可以更简单:
var patt = /(names?)+/g;
答案 1 :(得分:0)
问题是,当你应该完成(names)*
,意味着“名字”或“名字”1次或更多次时,你使用((name)(?:s))+
,意思是“名字”0次或更多次。