Регулярное выражение C # всегда возвращает FALSE

1
regexPattern="\w{6}(AAAAA|BBBBB|CCCCC)"  

Мне нужны строки ниже, чтобы вернуть TRUE. Таким образом, ЛЮБЫЕ 6 букв сопровождаются AAAAA или BBBBB или CCCCC:

TXCDTLAAAAA000
TXCDTLBBBBB111
TXCDTLCCCCC222

но, давая шаблон выше, я всегда получаю ЛОЖЬ взамен. Как исправить этот шаблон для правильной работы?

Так что в основном этот код работает:

    if (Regex.IsMatch("123456BBBBB", @"\w{6}(AAAAA|BBBBB|CCCCC)"))
    {
        //true
    }

поэтому я исправляю код сейчас Спасибо!

  • 4
    поделитесь кодом. Как вы подходите? на каком языке?
  • 0
    Вы заключаете это в разделители?
Показать ещё 5 комментариев
Теги:

1 ответ

4
Лучший ответ

Вы не указали, какой язык хоста вы используете, но обратная косая черта обычно является escape-символом в двойной кавычки, поэтому, если это общий язык, вам может потребоваться двойная обратная косая черта

 regexPattern="\\w{6}(AAAAA|BBBBB|CCCCC)" 

Или используйте другой способ выражения шаблона, который не требует escape-символов. Например, в Python вы можете префикс необработанной строки:

 regexPattern = r"\w{6}(AAAAA|BBBBB|CCCCC)"

Хотя Python не будет рассматривать \w как escape-последовательность в любом случае, но это поможет другим.

С помощью С# use @(verbatim string) для его выполнения:

 var regexPattern = @"\w{6}(AAAAA|BBBBB|CCCCC)";
  • 1
    Python на самом деле будет pat = re.compile(r"\w{6}((?:AAAAA)|(?:BBBBB)|(?:CCCCC)))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню