Я пытаюсь реализовать правильный шаблон Regex

1

Я использую регулярное выражение ниже, чтобы сопоставить три разных типа строк. Мне сложно определить, где добавить шаблон без учета регистра, чтобы соответствовать верхнему или нижнему регистру (например, re.IGNORECASE или ([A-Za-z0-9]+)). Должен ли я просто попробовать что-то другое?

regex = re.compile( "(%s|%s|%s)" % ( re.escape( userstring ), re.escape( userStrHEX ), re.escape( userStrASCII ) )
Теги:

1 ответ

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

Просто добавьте его в качестве второго аргумента в re.compile():

x = re.compile("(%s|%s|%s)" % (re.escape(userstring), re.escape(userStrHEX), re.escape(userStrASCII)), re.IGNORECASE)

Чтобы сделать это немного легче читать, мы можем извлечь аргументы форматирования в отдельный кортеж:

args = (re.escape(userstring), re.escape(userStrHEX), re.escape(userStrASCII))
x = re.compile("(%s|%s|%s)" % args, re.IGNORECASE)
  • 1
    @ user706808 @unwind Or args = tuple(map(re.escape,(userstring,userStrHEX,userStrASCII)))
  • 0
    @eyquem Спасибо ... очень экономно!

Ещё вопросы

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