В регулярном выражении, что означает \ w *?

Он также может быть двоичным, например

PreparedStatement preparedStatement = connection.prepareStatement
("INSERT INTO table (point, polygon) VALUES (PointFromWKB(?), GeomFromWKB(?))");

WKBWriter writer = new WKBWriter();

preparedStatement.setBytes(1, writer.write(point));
preparedStatement.setBytes(2, writer.write(polygon));

preparedStatement.executeUpdate();
13
задан S.Lott 16 October 2009 в 10:13
поделиться

6 ответов

Быстрый ответ: Сопоставьте строку, состоящую из одного символа, где этот символ является буквенно-цифровым (буквы, цифры), подчеркивания ( _ ) или звездочкой ( * ).

Подробности:

  • « \ w » означает «любой символ слова», что обычно означает буквенно-цифровой (буквы, цифры, независимо от регистра) плюс подчеркивание ( _)
  • « ^ » «привязывает» к началу строки, а « $ » «закрепляет» к концу строки, что означает, что, в этом случае совпадение должно начинаться с начала строки и заканчиваться в конце строки.
  • [] означает класс символов, что означает «соответствие любому символу, содержащемуся в классе символов».

Также стоит упомянуть, что обычные правила цитирования и экранирования для строк очень затрудняют ввод регулярных выражений (все обратные косые черты должны быть экранированы дополнительными обратными косыми чертами), поэтому в Python есть специальная нотация, которая имеет свою собственную специальные правила цитирования, которые позволяют правильно интерпретировать все обратные косые черты, и именно для этого используется " r " в начале.

Примечание: Обычно звездочка ( * ) означает «0 или более предыдущего значения», но в приведенном выше примере он не имеет это значение, поскольку звездочка находится внутри класса символов, поэтому он теряет свою «особенность».

Для получения дополнительной информации о регулярных выражениях в Python,две официальные ссылки: re module , Regular Expression HOWTO .

42
ответ дан 1 December 2019 в 06:43
поделиться

\ w обозначает 0 или более буквенно-цифровых символов и подчеркивание. * в вашем случае также находится внутри класса символов, поэтому [\ w *] будет соответствовать всем [a-zA-Z0-9_ *] (* интерпретируется буквально)

См. http: // www.regular-expressions.info/reference.html

Цитата:

\ d, \ w и \ s --- Сокращенные классы символов, соответствующие цифрам, символам слов и пробелам. Может использоваться внутри и вне классов символов.

Редактировать исправлено в ответ на комментарий

0
ответ дан 1 December 2019 в 06:43
поделиться

С начала этой строки «Любое количество символов слова (буква, число, знак подчеркивания)» до конца строки.

Я не уверен относительно того, почему он заключен в квадратные скобки, поскольку круглые скобки (например, "(" и ")") верны, если вы хотите, чтобы был возвращен совпадающий текст.

0
ответ дан 1 December 2019 в 06:43
поделиться

\ w эквивалентно [a-zA-Z0-9_] Я не понимаю * после него или [] вокруг него, потому что \ w уже является классом, а * в определения классов не имеют смысла.

-1
ответ дан 1 December 2019 в 06:43
поделиться

Как сказано выше, \ w означает любое слово. так что вы можете использовать это в контексте ниже

view.aspx?url=[\w]

, что означает, что вы можете использовать любое слово в качестве значения параметра «url =»

0
ответ дан 1 December 2019 в 06:43
поделиться

As exhuma сказал: \ w - это любой символ класса слов (буквенно-цифровой, как поясняет Джонатан).

Однако, поскольку он заключен в квадратные скобки, он будет соответствовать:

  1. одиночному буквенно-цифровому символу ИЛИ
  2. звездочке (*)

Таким образом, все регулярное выражение соответствует:

  • начало строка (^)
  • , за которой следует либо одиночный буквенно-цифровой символ или звездочка
  • , за которой следует конец line ($)

, поэтому будет соответствовать следующее:

blah
z  <- matches this line
blah

или

blah
* <- matches this line
blah
2
ответ дан 1 December 2019 в 06:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: