Совпадение любых специальных символов (включая подчеркивание, но не пробел), которые не являются буквами - PullRequest
0 голосов
/ 28 марта 2019

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

Короче говоря, я хочу соответствовать всем ниже, кроме двух последних.

12345_678
12345*678
12345-678
12345&678
12345-678
12345あ678
12345 678

Я не мог использовать [^a-zA-Z0-9], потому что он не содержит нелатинских букв, таких как японский. \d+(\W|_)\d+ получил ненужное место. Что было бы лучшим регулярным выражением для этого?

Ответы [ 3 ]

0 голосов
/ 28 марта 2019

Следующее регулярное выражение будет соответствовать любому символу, который не является ни буквенно-цифровым символом (включая символы различных алфавитов, таких как используемые в Японии или Корее), ни пробелом.

([^\w ]|_)

Обратите внимание на изменение, явно совпадающее с символом подчеркивания, которое необходимо, поскольку подчеркивание является частью класса символов \ w и, следовательно, не может быть сопоставлено только [^\w ]. (Также обратите внимание, что шаблон имеет пробел после \ w)

Если не только простые пробельные символы, но и любые другие пробельные символы (такие как, например, символ табуляции) также должны быть исключены из соответствия, тогда более подходящим может быть следующий слегка измененный шаблон:

([^\w\s]|_)


( Смотрите здесь пример последнего шаблона в действии на regexstorm.net, включая символы хирагана и хангыль )

0 голосов
/ 28 марта 2019

Возможно, вы захотите посмотреть Категории символов Unicode . Похоже, вам нужно соответствовать для символов и знаков пунктуации .

var regexPattern = @"[\p{S}\p{P}]";

Символы включают +, -, =, <, $, ^, ¦, § и т. Д. </p>

Знаки пунктуации включают _, -, (, {, ",»,!,?, #, * И т. Д.

0 голосов
/ 28 марта 2019

Используйте следующее, которое также игнорирует японские буквы:

[^a-zA-Z\d\s぀-ゟ゠-ヿ一-龯]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...