У меня есть строки в формате:
Между первым и вторым подчеркиванием текст либо «красный», либо «синий», а между вторым подчеркиванием и первой парой двойных подчеркиваний текст либо "один или два". Между первым набором двойных подчеркиваний стоит Имя. Это может включать одно имя или имя и фамилию, разделенные одним подчеркиванием. Этот раздел имени определяется окружением двойного подчеркивания, а любое подчеркивание означает, что он является частью имени. (обратите внимание, первая буква имени должна быть CAPS). Между следующим набором двойных подчеркиваний есть псевдоним. Точно так же псевдонимы могут быть несколькими словами, но разделены одним подчеркиванием. Все, что обнаружено между вторым набором двойных подчеркиваний, будет считаться псевдонимом. Оставшиеся после третьего двойного подчеркивания могут быть чем угодно. Если необходимо несколько слов, они могут быть разделены одним подчеркиванием. Там не должно быть оставшейся части строки.
Вот что у меня есть для моего регулярного выражения:
always_(?:red|blue)_(?:one|two)__[A-Z]{1,1}....
Я не хочу использовать \ w + для проверки имени, используя подчеркивания, потому что это также будет соответствовать двойным подчеркиваниям следуя за Именем Я застрял где go отсюда.
Чтобы уточнить, я хочу перехватить любые строки, которые не соответствуют этому формату.