【问题标题】:Regular expression doesn't detect all the url's正则表达式不会检测到所有 url
【发布时间】:2019-04-25 10:42:57
【问题描述】:

我想用正则表达式检测所有这些 url:

/liga-femenina-1
/liga-femenina-1/equipos
/liga-femenina-1/resultados
/liga-femenina-1/estadisticas
/liga-femenina-1/buscador
/liga-femenina-2
/liga-femenina-2/equipos
/liga-femenina-2/resultados
/liga-femenina-2/estadisticas
/liga-femenina-2/buscador

我已经定义了这个正则表达式:

\/liga-femenina-(1|2)\/?\w*

这个正则表达式只检测第一个url。

但是,如果我删除第一个 url,正则表达式会正确检测下一个 url,而之前没有这样做。

如何让我的正则表达式检测到所有网址?我做错了什么?

【问题讨论】:

标签: javascript regex


【解决方案1】:

尝试使用标志 g(全局):

/\/liga-femenina-(1|2)\/?\w*/g

g

全局匹配;查找所有匹配项而不是在第一个匹配项后停止

请注意:如果您在正则表达式中使用 start 和 end 则使用标志 m(多行):

/^\/liga-femenina-(1|2)\/?\w*+$/gm

m

多行;将开始和结束字符(^ 和 $)视为处理多行(即,匹配每行的开始或结束(由 \n 或 \r 分隔),而不仅仅是整个输入字符串的开始或结束)

【讨论】:

  • 只有g 标志就足够了,因为正则表达式不使用开始/结束锚点,所以使用m 是没用的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-12
  • 2011-12-19
相关资源
最近更新 更多