4

我需要一个 javascript 正则表达式模式来测试模式变量,因此它应该具有以下任一条件。

  1. 它可以以任何字符开头,后跟“_water_glass”,并且不能是 water_glass 之后的任何字符,例如“xxxx_water_glass”

或者

  1. 可以只是“water_glass”,不需要在 water_glass 之前有字符,也不能是 water_glass 之后的任何内容。

任何人都可以帮助获得正则表达式模式。

4

2 回答 2

0

试试这个/^.*_?\_water_glass/

    var re = /^.*_?_water_glass/mg; 
var str = 'horse.mp3_country_code\n4343434_country_code\n_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

于 2015-03-17T15:40:41.913 回答
0

给你:

^(?:.+_|)water_glass$

详情

  • ^- 字符串的开始
  • (?:.+_|)- 一个可选的 1+ 字符而不是换行符,尽可能多,直到最后一个_包括它
  • water_glass- 一个water_glass子串
  • $ - 字符串结束。

请参阅下面的正则表达式演示和演示代码:

var re = /^(?:.+_|)water_glass$/gm; 
var str = 'xxxx_water_glass\nwater_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.
}
于 2015-03-17T15:41:37.950 回答