我对如何进行任何正则表达式感到困惑。
例如,我必须对这种类型的字符串进行正则表达式,

提取/ https://upload.wikimedia.org/wikipedia/w_100/commons/f/f9/Phoenicopterus_ruber_in_São_Paulo_Zoo.jpg
提取/ https://upload.wikimedia.org/wikipedia/w_100,h_100,fl_progressive,dpr_2.0/commons/f/f9/Phoenicopterus_ruber_in_São_Paulo_Zoo.jpg

所以我只想匹配frm第一个字符串w_100和第二个字符串w_100,h_100,fl_progressive,dpr_2.0同样的URL。

var regex = /[a-z]_[0-9a-z]/g;
var found = string.match(regex);


它显示我输出类似


  [“ w_1”,“ s_r”,“ r_i”,“ n_s”]


我想要这样的东西


  [“ w_100”,“ h_100”,“ fl_progressive”,“ dpr_2.0”,]


有人可以为此建议我一个正则表达式吗?

最佳答案

您可以使用以下正则表达式



let str = '/https://upload.wikimedia.org/wikipedia/w_100,h_100,fl_progressive,dpr_2.0,ar_3:4,quality_auto:good,effect_auto_brightness,effect_auto_color:50,effect_green:-30/commons/f/f9/Phoenicopterus_ruber_in_São_Paulo_Zoo.jpg'

console.log(str.match(/([a-z]+_([a-z]+|[0-9]+(\.[0-9]+)?)(?=(,|\/)))/g))






  更新以增加要求。


console.log(str.match(/([a-z]+(?:_|:|:-)?([a-z]+|[0-9]+(\.[0-9]+)?)(?=(,|\/)))+/g))

10-06 05:29
查看更多