2013-05-26 6 views
-5

Я читал Регулярное выражение от http://www.regular-expressions.info/charclass.html. Там написано, что [\D\S] - это не то же самое, что и [^\d\s]. Может кто-нибудь объяснить это?Почему [ D S] не совпадает с [^ d s] в regex?

+4

ли вы прочитать остальную часть этого пункта? – BoltClock

+0

Он уже точно объясняет, как они отличаются. – hvd

+0

'[\ D \ S]' будет пытаться совместить символ, который не является цифрой ** или **, а не пробелом **. Любой персонаж будет удовлетворять хотя бы одному из этих условий. –

ответ

2

Цитируя ссылке вы публикуемую ..

Последний будет соответствовать любому символу, который не является цифрой или пробел. Таким образом, он будет соответствовать x, но не 8. Первый, однако, будет соответствовать любому символу, который либо не является цифрой, либо не является пробелом. Поскольку цифра не является пробелом, а пробел не является цифрой, [\ D \ S] будет соответствовать любому символу, цифре, пробелу или по другому.

1

\D - все, кроме цифр. \S - это все не пробел. [ <something> <something else> ] является сгруппированным значением либо<something>или<something else>.

Таким образом, [\D\S] является либо нецифровым, либо непространственным.

И [^\d\s] is не цифры и пробелы.

0

Почему бы не прочитать Справочной

Поскольку цифра не пробельные, а пробельные не является цифрой, [\ D \ S] будет соответствовать любому символу, цифры, пробел или иным образом.

Может быть подсказкой

Смежные вопросы