Entry tags:
Почему, ну почему майкрософтовские программисты такие ненатуралы?
Дано: ASP/JScript.
Задача: выделить из строки первые три слова.
Пишем регулряное выражение:
var re = new RegExp("^(\\s*(\\S+\\s+){3})" , "")
str = str.replace(re, "$1")
Индейская национальная изба.
Целый час бился, и так, и эдак - ну не матчится, хоть тресни.
В конце концов оказалось, что по-майкрософтовски это надо писать так:
"^(\\s*(\\S+\\s+){3}).*"
или так:
"^(\\s*(\\S+\\s+){3}).*$"
С последними тремя словами все еще хуже. Это только так:
".*((\\s+\\S+){3}\\s*)$"
А вот так уже не:
"((\\s+\\S+){3}\\s*)$"
И что самое смешное, вот так тоже не:
"^.*((\\s+\\S+){3}\\s*)$"
Ну и как их после этого не назватьпиненатуралами?
Задача: выделить из строки первые три слова.
Пишем регулряное выражение:
var re = new RegExp("^(\\s*(\\S+\\s+){3})" , "")
str = str.replace(re, "$1")
Индейская национальная изба.
Целый час бился, и так, и эдак - ну не матчится, хоть тресни.
В конце концов оказалось, что по-майкрософтовски это надо писать так:
"^(\\s*(\\S+\\s+){3}).*"
или так:
"^(\\s*(\\S+\\s+){3}).*$"
С последними тремя словами все еще хуже. Это только так:
".*((\\s+\\S+){3}\\s*)$"
А вот так уже не:
"((\\s+\\S+){3}\\s*)$"
И что самое смешное, вот так тоже не:
"^.*((\\s+\\S+){3}\\s*)$"
Ну и как их после этого не назвать

no subject
no subject
no subject
Как-то так (http://msdn2.microsoft.com/en-us/library/ms972966.aspx#regexnet_topic13).
no subject
Первый регекс работал. Заменял первые три слова на первые три слова, оставшуюся часть не трогал. Соответственно, изменений в строке не было.
Последние два регекса заменяют первые три слова ПЛЮС ВЕСЬ ОСТАТОК СТРОКИ на первые три слова. Что и требовалось (видимо).
Такие дела.
no subject