В Python. г ^ [\ ш *] $
Что это значит?
В Python. г ^ [\ ш *] $
Что это значит?
Быстрый ответ: Сопоставьте строку, состоящую из одного символа, где этот символ является буквенно-цифровым (буквы, цифры) подчеркиванием (_
) или звездочкой (*
).
Детали:
\w
" означает "любой символ слова", который обычно означает буквенно-цифровое (буквы, цифры, независимо от случая) плюс подчеркивание (_)^
" "привязывает" к началу строки, а "$
" "привязывает" к концу строки, что означает, что в этом случае совпадение должно начинаться с начало строки и конец в конце строки.[]
означает класс символов, что означает "соответствие любому символу, содержащемуся в классе символов".Также стоит упомянуть, что нормальные правила цитирования и экранирования для строк затрудняют ввод регулярных выражений (все обратные косые черты должны быть экранированы с помощью дополнительных обратных косых черт), поэтому в Python имеется специальное обозначение, которое имеет свои собственные специальные правила цитирования, которые позволяют интерпретировать все обратные косые черты должным образом, и именно это означает "r
" в начале.
Примечание: Обычно звездочка (*
) означает "0 или более предыдущей вещи", но в приведенном выше примере она не имеет этого значения, поскольку звездочка находится внутри символьный класс, поэтому он теряет свою "специальность".
Для получения дополнительной информации о регулярных выражениях в Python, двумя официальными ссылками являются re module, регулярное выражение HOWTO.
Как говорит эксгума, \w - любой символ слова-класса (буквенно-цифровой, как поясняет Джонатан).
Однако, поскольку он заключен в квадратные скобки, он будет соответствовать:
Итак, все регулярное выражение соответствует:
поэтому следующее:
blah
z <- matches this line
blah
или
blah
* <- matches this line
blah
С начала этой строки "Любое количество словных символов (буква, число, подчеркивание)" до конца строки.
Я не уверен, почему это в квадратных скобках, так как круглые скобки (например, "(" и ")" ) правильны, если вы хотите, чтобы возвращаемый текст соответствовал.
\ w ссылается на 0 или более буквенно-цифровых символов и подчеркивание. * в вашем случае также находится внутри класса символов, поэтому [\ w *] будет соответствовать всем [a-zA-Z0-9_ *] (буква * интерпретируется буквально)
См. http://www.regular-expressions.info/reference.html
Цитата:
\ d,\w и \s --- Сокращенные классы символов, соответствующие цифрам, символам слов и пробелам. Может использоваться внутри и снаружи классов символов.
Изменить исправлено в ответ на комментарий
Как сказано выше, \w означает любое слово. поэтому вы можете использовать это в контексте ниже
view.aspx?url=[\w]
что означает, что вы можете иметь любое слово в качестве значения параметра "url ="
\ w эквивалентно [a-zA-Z0-9_] Я не понимаю его после него или [] вокруг него, потому что \w уже является классом и * в определениях классов не имеет смысла.