Regex 匹配AngularJS ui路由器中的一个或另一个单词

Regex 匹配AngularJS ui路由器中的一个或另一个单词,regex,angularjs,Regex,Angularjs,使用AngularJS+ui路由器,我需要将url与以下两个词中的一个匹配: i、 e./oneWord/..或/secondWord 路由和控制器几乎相同,因此我希望避免重复代码 但是,在正则表达式应该工作的地方,使用我习惯的正则表达式是行不通的: url:'/{type:(一个词|第二个词)}/:group', 但是,它会抛出一个错误: route'/{type:(一个字|第二个字)}/:group' 不过,正则表达式应该可以工作,因为它可以很好地工作: url:“/{page:[0-9]{

使用AngularJS+ui路由器,我需要将url与以下两个词中的一个匹配:

i、 e.
/oneWord/..
/secondWord

路由和控制器几乎相同,因此我希望避免重复代码

但是,在正则表达式应该工作的地方,使用我习惯的正则表达式是行不通的:

url:'/{type:(一个词|第二个词)}/:group',

但是,它会抛出一个错误:

route'/{type:(一个字|第二个字)}/:group'

不过,正则表达式应该可以工作,因为它可以很好地工作:

url:“/{page:[0-9]{1,8}}”

我知道
(oneWord | secondWord)
是一个有效的正则表达式,所以我遗漏了什么?

根据规则,您不应该在正则表达式模式中使用捕获括号


这应该行得通:
url:'/{type:(?:oneWord | secondWord)}/:group'

我完全没有注意到,甚至前几天才读到。谢谢如果网站允许,我会接受答案。如果第二个单词为空,对正则表达式有什么建议吗?它可以是
url:'/{type:(?:oneWord | null)}/:group'
对于不应与
oneWord
匹配的参数,正则表达式是什么?