.NET regex: каков словесный символ \w?

Простой вопрос:
Каков шаблон для словесного символа \w в c#, .NET?

Моя первая мысль была то, что это соответствует [A-Za-z0-9_] и документация говорит мне:

Character class    Description          Pattern     Matches
\w                 Matches any          \w          "I", "D", "A", "1", "3"
                   word character.                  in "ID A1.3"

который не очень полезен.
И \w кажется, соответствует äöü, также.Что еще? Существует ли лучшее (точное) доступное определение?

70
задан tanascius 8 June 2010 в 14:58
поделиться

2 ответа

Из документации:

Словесный символ: \w

\w соответствует любому словесному символу. Словесный символ является членом любой из категорий Unicode, перечисленных в следующей таблице.

  • Ll (буква, строчная)
  • Lu (буква, прописная)
  • Lt (буква, заглавная)
  • Lo (буква, другая)
  • Lm (буква, модификатор)
  • Nd (число, десятичная цифра)
  • Pc (пунктуация, соединитель)
    • Эта категория включает десять символов, наиболее часто используемым из которых является символ НИЗКОЙ ЛИНИИ (_), u+005F.

Если указано поведение, соответствующее ECMAScript, \w эквивалентен [a-zA-Z_0-9].

См. также

103
ответ дан 24 November 2019 в 13:27
поделиться

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

Вы можете найти полный список (по крайней мере, для BMP) в следующем крошечном фрагменте PowerShell:

0..65535 | ?{([char]$_) -match '\w'} | %{ "$_`: " + [char]$_ }
14
ответ дан 24 November 2019 в 13:27
поделиться
Другие вопросы по тегам:

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