Javascript Regex匹配第一个匹配项

dou*_*oup 5 javascript regex

我有这个正则表达式(它没有做我想要的):/^.*\/(eu|es)(?:\/)?([^#]*).*/实际上是js版本:/^.*/(eu|es)(?:/)?([^#]*).*/

嗯,它没有做我想要的,当然它的工作原理.:)鉴于此URL:

  • http:// localhost/es - > [1] = es,[2] =''
  • http:// localhost/eu/bla/bla #wop - > [1] = eu,[2] ='bla/bla'
  • http:// localhost/eu/bla/eubla - > [1] = eu,[2] ='bla'

前两个网址按预期工作.第三个不是我想要的.由于后来在网址上找到"eu",它与第二个eu而不是第一个eu匹配.所以我希望它符合这个:[1] ='eu',[2] ='bla/eubla'

我该怎么办?

谢谢.:)

Ama*_*osh 9

做第一个*不合适的

/^.\*?\/(eu|es)(?:\/)?([^#]\*).\*/
Run Code Online (Sandbox Code Playgroud)

顺便说一句,你真的需要*在JavaScript中逃脱吗?这不行吗?

/^.*?\/(eu|es)(?:\/)?([^#]*).*/
Run Code Online (Sandbox Code Playgroud)