我需要一个javascript正则表达式模式来测试模式变量,因此它应该具有以下任一项。
- 它可以以任何后面跟着"_water_glass"的字符开头,并且不能像"xxxx_water_glass
或
- 它可以只是"water_glass",而不必在water_glass之前有字符,也不能在water_gclass之后有任何字符
有人能帮忙吗?请获取正则表达式模式。
简单地尝试/^.*_?_water_glass/
var re = /^.*_?_water_glass/mg;
var str = 'horse.mp3_country_coden4343434_country_coden_country_code';
var m;
while ((m = re.exec(str)) != null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
}
演示https://regex101.com/r/gB9zL7/2
这里是:
^(?:.+_|)water_glass$
详细信息:
^
-字符串的开头(?:.+_|)
-可选的1+个字符,而不是换行字符,尽可能多,直到包括它的最后一个_
water_glass
-一个water_glass
子串$
—字符串结束
请参阅下面的regex演示和演示代码:
var re = /^(?:.+_|)water_glass$/gm;
var str = 'xxxx_water_glassnwater_glass';
var m;
while ((m = re.exec(str)) != null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
}