Код (Text): /[^(w)|(x7F-xFF)|(s)]/ [^(w)-не буквы a-zA-Z |(x7F-xFF)- или символы с номерами от x7F-xFF |(s)]- или пробел но русские буквы как раз находятся в диапазоне x7F-xFF, так что по любому ошибка.
Но как ни странно, это действительно делает шаблон = Другое дело, что я не могу представить себе ник, не имеющий в своем составе ни английских, ни русских букв. =))))
так, хорошо, разьясню на приемре, берем все символы для русской локали: Код (Text): #11= #12= #13= #14= #15= #16= #17= #18= #19= #20= #21= #22= #23= #24= #25= #26= #27= #28= #29= #30= #31= #32= #33=! #34=" #35=# #36=$ #37=% #38=& #39=' #40=( #41=) #42=* #43=+ #44=, #45=- #46=. #47=/ #48=0 #49=1 #50=2 #51=3 #52=4 #53=5 #54=6 #55=7 #56=8 #57=9 #58=: #59=; #60=< #61== #62=> #63=? #64=@ #65=A #66=B #67=C #68=D #69=E #70=F #71=G #72=H #73=I #74=J #75=K #76=L #77=M #78=N #79=O #80=P #81=Q #82=R #83=S #84=T #85=U #86=V #87=W #88=X #89=Y #90=Z #91=[ #92=\ #93=] #94=^ #95=_ #96=` #97=a #98=b #99=c #100=d #101=e #102=f #103=g #104=h #105=i #106=j #107=k #108=l #109=m #110=n #111=o #112=p #113=q #114=r #115=s #116=t #117=u #118=v #119=w #120=x #121=y #122=z #123={ #124=| #125=} #126=~ #127= #128=? #129=? #130=‚ #131=? #132=„ #133=… #134=† #135=‡ #136=? #137=‰ #138=S #139=‹ #140=? #141=? #142=Z #143=? #144=? #145=‘ #146=’ #147=“ #148=” #149=• #150=– #151=— #152=? #153=™ #154=s #155=› #156=? #157=? #158=z #159=Y #160= #161=? #162=? #163=? #164=¤ #165=? #166=¦ #167=§ #168=? #169=© #170=? #171=« #172=¬ #173= #174=® #175=? #176=° #177=± #178=? #179=? #180=? #181=µ #182=¶ #183=· #184=? #185=? #186=? #187=» #188=? #189=? #190=? #191=? #192=А #193=Б #194=В #195=Г #196=Д #197=Е #198=Ж #199=З #200=И #201=Й #202=К #203=Л #204=М #205=Н #206=О #207=П #208=Р #209=С #210=Т #211=У #212=Ф #213=Х #214=Ц #215=Ч #216=Ш #217=Щ #218=Ъ #219=Ы #220=Ь #221=Э #222=Ю #223=Я #224=а #225=б #226=в #227=г #228=д #229=е #230=ж #231=з #232=и #233=й #234=к #235=л #236=м #237=н #238=о #239=п #240=р #241=с #242=т #243=у #244=ф #245=х #246=ц #247=ч #248=ш #249=щ #250=ъ #251=ы #252=ь #253=э #254=ю #255=я убираем символы с номерами x7F-xFF(127-255) и пробел, остаются: Код (Text): #11= #12= #13= #14= #15= #16= #17= #18= #19= #20= #21= #22= #23= #24= #25= #26= #27= #28= #29= #30= #31= #33=! #34=" #35=# #36=$ #37=% #38=& #39=' #40=( #41=) #42=* #43=+ #44=, #45=- #46=. #47=/ #58=: #59=; #60=< #61== #62=> #63=? #64=@ #91=[ #92=\ #93=] #94=^ #96=` #123={ #124=| #125=} #126=~ т.е получается, что ник может состоять из любых символов, кроме написанных выше, а кроме букв, цифр, символа подчеркивания в нике разрешаются следующие символы: Код (Text): #127= #128=? #129=? #130=‚ #131=? #132=„ #133=… #134=† #135=‡ #136=? #137=‰ #138=S #139=‹ #140=? #141=? #142=Z #143=? #144=? #145=‘ #146=’ #147=“ #148=” #149=• #150=– #151=— #152=? #153=™ #154=s #155=› #156=? #157=? #158=z #159=Y #160= #161=? #162=? #163=? #164=¤ #165=? #166=¦ #167=§ #168=? #169=© #170=? #171=« #172=¬ #173= #174=® #175=? #176=° #177=± #178=? #179=? #180=? #181=µ #182=¶ #183=· #184=? #185=? #186=? #187=» #188=? #189=? #190=? #191=? , т.е. можно создать ник, например, ?Kortez®, а задача была совсем другой,
Kortez, сел... подумал, перечитал мануал. Знаешь что? По логике, все шаблоны там - неправильные. Просто потому, что использовать обозначение () для подмасок внутри символьного класса [] и нельзя.
ЗЫ. Может, конечно, я чегой то не знаю, или неправавильно понял, т.к. с регулярками я только только со словарём(мануалом) общаюсь..
Горбунов Олег Перечитал еще раз про скобки в регулярных выражениях, http://phpclub.ru/detail/article/regexp_1, использование () внутри символьного класса [] служит для группирующих целей, использование () вне символьного класса [] служит для сохраняющих целей
Ну например, для наглядности вместо Код (Text): /^[_a-zA-Zа-яА-Я]*$/ можно написать Код (Text): /^[_(a-z)(A-Z)(а-я)(А-Я)]*$/ чисто практической пользы я в этом не вижу
Горбунов Олег, написать-то можно, вот только результат будет отличаться от желаемого. Kortez, во второй шаблон попадают соответствия открывающей и закрывающей скобкам.