Шаблон регулярных выражений javascript для _water_glass

Мне нужен шаблон регулярных выражений javascript для проверки переменной схемы, чтобы он имел одно из следующих значений.

  1. Он может начинаться с любого символа, за которым следует "_water_glass", и после water_glass не должно быть ничего, похожего на "xxxx_water_glass"

или же

  1. Может быть просто "water_glass", необязательно иметь символ перед water_glass и не должно быть ничего после water_glass.

Может ли кто-нибудь помочь в этом, пожалуйста, чтобы получить шаблон регулярных выражений.

2 ответа

Попробуйте это просто /^.*_?\_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

Вот ты где:

^(?:.+_|)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.
}
Другие вопросы по тегам