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

好吧,它不能满足我的要求,当然可以。 :)鉴于此网址:

  • 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'

    我该怎么办?

    谢谢你。 :)

    最佳答案

    使第一个*不满意

    /^.\*?\/(eu|es)(?:\/)?([^#]\*).\*/
    

    顺便说一句,您真的需要在javascript中转义*吗?这行不行吗?
    /^.*?\/(eu|es)(?:\/)?([^#]*).*/
    

    关于Javascript正则表达式匹配第一个出现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1796571/

    10-12 06:32