Я читал Регулярное выражение от http://www.regular-expressions.info/charclass.html. Там написано, что [\D\S]
- это не то же самое, что и [^\d\s]
. Может кто-нибудь объяснить это?Почему [ D S] не совпадает с [^ d s] в regex?
ответ
Цитируя ссылке вы публикуемую ..
Последний будет соответствовать любому символу, который не является цифрой или пробел. Таким образом, он будет соответствовать x, но не 8. Первый, однако, будет соответствовать любому символу, который либо не является цифрой, либо не является пробелом. Поскольку цифра не является пробелом, а пробел не является цифрой, [\ D \ S] будет соответствовать любому символу, цифре, пробелу или по другому.
\D
- все, кроме цифр. \S
- это все не пробел. [ <something> <something else> ]
является сгруппированным значением либо<something>
или<something else>
.
Таким образом, [\D\S]
является либо нецифровым, либо непространственным.
И [^\d\s]
is не цифры и пробелы.
Почему бы не прочитать Справочной
Поскольку цифра не пробельные, а пробельные не является цифрой, [\ D \ S] будет соответствовать любому символу, цифры, пробел или иным образом.
Может быть подсказкой
- 1. Scanner.hasNext (String s) для "\\ d \\ s \\ d" не удается
- 2. Регулярное выражение^(\ + \ d + \ s?)? \ D + $
- 3. Получить номер с этой формой \ d \ s \ d \ d \ s \ d
- 4. Захват скобок -/(\ d) /? или/\ s *; \ s * /?
- 5. REGEX: \ s \ d {3,4} \ b \ n \ n?
- 6. Как уточнить RegEx (\ bL \ s * \ d {6} \ s * \ d {7} \ b)
- 7. Почему [^ \ d \ w \ s,] соответствует "leonardo, davinci"?
- 8. Какова цель% d и% s
- 9. Почему `bundle exec rails s` не совпадает с` rails s`?
- 10. Почему \ d * совпадает с позициями?
- 11. Как создать гибкие выражения заполнителя (% d% s% d) в c?
- 12. почему:% s/^ $ // g не равно: g/^ $/d в vim?
- 13. В чем разница между регулярными выражениями [^ \ d \ s] и [\ D \ S]
- 14. Regex заменяет библиографические ссылки в стиле Гарварда \ d {4}: \ s \ d + с запятой
- 15. MySQLdb Python вставки% d и% s
- 16. Использование заполнителей (% d,% s) в plt.text (matplotlib.pyplot.text)
- 17. Java String Format: "% 0" и "d% s"
- 18. Java Regex, чтобы увидеть, содержит ли строка% s,% d,% n
- 19. windows cmd attrib -s -h -r i: \ *. */S/d
- 20. Что означает D-S-Up в vim?
- 21. как интерпретировать приоритет оператора в * d ++ = * s ++
- 22. Perl Regex -? \ D + (?: \. \ D +)?
- 23. Regex: разница между [^ A-Za-z \ s] и \ W \ d
- 24. Почему [\\ s *] не эквивалентен \\ s *?
- 25. «sort -s» считает, что «p» предшествует «d»?
- 26. Python 2.7:% d,% s и float()
- 27. Javascript:% s или% d представляет строку?
- 28. PHP: preg_match_all() '' /((\d{9})\.html)/s
- 29. java regex: (\\ d {1,2}) \\/(\\ d {1,2}) \\/(\\ d {1,4})
- 30. Regex ", \\ s (. *?), \\ s"
ли вы прочитать остальную часть этого пункта? – BoltClock
Он уже точно объясняет, как они отличаются. – hvd
'[\ D \ S]' будет пытаться совместить символ, который не является цифрой ** или **, а не пробелом **. Любой персонаж будет удовлетворять хотя бы одному из этих условий. –