2012-01-24 6 views
11

теперь, используя в Regex эти выражения,Regex - матч все без пробелов

([\x20-\x7E]+) - соответствие все с пространством

([\x21-\x7E]+) - сопрягать все без пространства

Но мне нужно больше производительности и в тесте я см., что (.*) является 2x более быстрым, чем ([\x20-\x7E]+). Тогда я заменил это.

Но как написать ([\x21-\x7E]+) в (.*)? Или, другими словами, как изменить (.*), чтобы соответствовать всем без пробельных символов?

Спасибо!

ответ

28

Чтобы соответствовать все, кроме пробельных использования:

[^\s]+ 
+0

или просто '\ S +'. Но это слишком легко. Это не может быть реальным ответом? Свисстак спрашивал о бенчмаркинге, поэтому я полагаю, что это не первый раз, когда Свисстак использовал Regex? –

+1

@Buh Buh: работает немного медленнее, я думал о повышении производительности, но это всего лишь на 5% медленнее, и у меня есть более чистый код, я прощаю это, поэтому я принял – Svisstack

+1

@Svisstack: Спасибо, что обновили нас с результатом бенчмаркинга , – anubhava

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