/ / Как да подобрим израза "регенерация", за да съответства на "специалните" букви? - рубинки на релси, рубин, регекс, рубин на релси-3

Как да подобрим израза "регенерация", за да съответстваме на "специалните" букви? - рубинки на релси, рубин, регекс, рубин на релси-3

Аз използвам Ruby on Rails 3.0.9 и използвам следната регенерация, за да потвърдя низ, съдържащ букви, празни интервали и числа (ако имам право, тя трябва да съвпада с посочените букви):

/^[ws-]*$/u

Бих искал да подобря този регекс и да съответства на низ, който може да съдържа "специални" символи, например, ", ", %, &, *, @, !, ?, (, ), [ и ]. Как мога да променя горния regex, за да съответства на тези?


UPDATE

Забравих, че в горепосочения израз бих искал да потвърдя мачовете също ударение букви като подобни à, è, é, ì, ò и ù.

Отговори:

1 за отговор № 1

Просто добавете допълнителните знаци към класа ви на герои, докато избягвате такива, които имат специален смисъл в класа на характерния израз на израз (само [ и ] във вашия случай):

/^[ws""%&*@!?()[]-]*$/u

Също така не забравяйте да поставите - в края на класа на героите или избягвайте (-), така че синхронизиращият анализатор няма да мисли, че показва диапазон.

Ако искате да хвърлите в Unicode знаци "дума", заместете w с p{Word}:

/^[p{Word}s""%&*@!?()[]-]*$/

Ако приемем, че използвате 1.9, а ако не използвате 1.9, трябва да надстроите, за да получите по-добра поддръжка на Unicode.

Най- p{} синтаксисът за Oniguruma (1.9-овето двигател за Ruby) е за име на собственост и звучи като че търсите "дума" собственост, така че p{Word} е вашият заместител w, Може да искате да замените s с p{Space} докато сте в него:

/^[p{Word}p{Space}""%&*@!?()[]-]*$/

Повече подробности за синтаксиса на Oniguruma можете да намерите тук:

http://www.geocities.jp/kosako3/oniguruma/doc/RE.txt


0 за отговор № 2

Можете да избягвате специални знаци. Този регулярен израз: [] ще съответства на низа "[]".

Разгледайте този полезен уебсайт: http://www.rubular.com/

Можете да изградите своя регекс и да го тествате срещу струни.

редактиране Просто започнете да добавяте тези избягали специални символи към вашия регекс, както е така: /^[""[]ws-]*$/u Там я прибавих така, че сега може да търси и произхода на една квота ("), двоен цитат (") и квадратни скоби ([]). Просто добавете още, ако имате нужда от нея.