При выполнении поиска в регулярном выражении для алфавитных символов [^ A-Za-z \ s] и \ W \ d эквивалентно? Есть ли разница в производительности?Regex: разница между [^ A-Za-z s] и W d
ответ
Нет, они не то же самое. Попробуйте это с некоторыми тестовыми данными и докажите это самому себе.
\W
является отрицанием \w
. \w
- «символ слова». Он не включает пробелы, знаки препинания и т. Д.
[A-Za-z\s]
«Буквы A-Z, верхний и нижний регистр, плюс пробелы». [^A-Za-z\s]
- это отрицание этого.
Почему вы спрашиваете о различии между этими двумя? Вы надеетесь ускорить поиск, используя один вместо другого? Если это так, очень вероятно, что ваш поиск медленный из-за факторов, отличных от тех двух простых простых регулярных выражений, которые вы используете.
Нет, они не эквивалентны. \w
является эквивалентом A-Za-z0-9_
.
Производительность будет зависеть от используемого вами двигателя, но я не могу себе представить, что между ними существует большая разница.
- 1. PHP Regex: Разница между \ s и \\ s
- 2. В чем разница между \ d + и \ d- OR \ w + и \ w- в терминах регулярного выражения?
- 3. Разница между «\\ d +» и «\\ d ++» в java regex
- 4. В чем разница между регулярными выражениями [^ \ d \ s] и [\ D \ S]
- 5. Почему [\ D \ S] не совпадает с [^ \ d \ s] в regex?
- 6. В чем разница между% r,% s и% d в python?
- 7. В чем разница между% w и% W
- 8. Почему [^ \ d \ w \ s,] соответствует "leonardo, davinci"?
- 9. Разница между: d [count] и d [count]
- 10. В чем разница между: D и: D :?
- 11. Есть ли разница между \ d и \ d +?
- 12. Разница между s = s + s и s + = s с короткими
- 13. Есть ли разница между s ++ и * s ++?
- 14. Разница между «(\ S +) \. |" и "(\ S +) |" in Perl
- 15. Разница между «% s» и «?% S» в Python
- 16. разница между TYPEOF (/ \ s /) и $ .type (/ \ s /)
- 17. В чем разница между printf (s) и printf («% s», s)?
- 18. Разница между% s и% 1024s
- 19. Разница между «<pattern value = ABC \ s * \ d *" & "<pattern value = ABC \ d * \ d *" в xslt
- 20. Как расширить диапазон \ w \ d + - \ w \ d +
- 21. Разница между этими двумя командами (w & w/out "") и почему?
- 22. Разница между * и + в python regex?
- 23. C указатели: разница между while (* s ++) {;} и while (* s) {s ++;}
- 24. REGEX: \ s \ d {3,4} \ b \ n \ n?
- 25. Разница между .split (/ \ s + /) и .split ("")?
- 26. разница Regex
- 27. Разница между r + и w + in fopen()
- 28. regex pattern - what is ((? =. * \ D) | (? =. * \ W +)) и (?! [. \ N])
- 29. Разница между: w и: w! in vi editor
- 30. jquery REGEX для длинной строки с azAZ-09-specialchars и |
Если ваше соответствие регулярному выражению находится в середине чрезвычайно плотного цикла, который называется тысячи или миллионы раз, разница в исполнении между этими двумя настолько мала, чтобы быть неактуальной. Поэтому выберите тот, который более ясен для ваших целей. (И нет, они не то же самое) –
'Выполнение регулярного поиска для алфавитных символов 'Ваше регулярное выражение исключает их. – nhahtdh