正则表达式javascript捕获多个事件

时间:2018-08-24 12:24:14

标签: javascript regex

我有一个文字,例如:

Hello ../aaa.jpg ../bbb.jpg ../sss.gif ../xxx.png End of Text

我想获取所有扩展名为jpg和png的文本。

预期结果:

 1. ../aaa 
 2. ../bbb 
 3. ../xxx

请帮助我。 我尝试使用.match(/(.*).(jpg|png)/),但似乎无法正常工作

2 个答案:

答案 0 :(得分:3)

您必须使用g标志来处理多次出现,并且只需要匹配单词(\w),点(\.)和斜杠({ {1}})在点和扩展名之前:

\/

答案 1 :(得分:2)

let regex = /\S+?(?=\.(?:jpg|png))/g

console.log(
    'Hello ../aaa.jpg blah ../a-b-c.jpg ../sss.gif ../&%01-x.png End of Text'.match(regex)
)

哪里

  • \S+?匹配1个或多个(不是贪婪的)非空格字符
  • (?= ... )是积极的前瞻
  • (?: ... )是一个非捕获组