| View previous topic :: View next topic |
| Author |
Message |
FeyFre
Joined: 07 Aug 2007 Posts: 1888 Location: Vinnitsa, Ukraine
|
Posted: Wed Aug 08, 2012 8:07 am Post subject: |
|
|
| Quote: | | ЕМНИП, \w означает "любая ЛАТИНСКАЯ буква", а чтобы и русские искались, замените на [a-zA-Zа-яА-ЯёЁ] | Шел на дворе 21 век, а Вы продолжаете пользоваться концепциями 16-го? |
|
| Back to top |
|
 |
eil
Joined: 15 Nov 2009 Posts: 30 Location: Alex
|
Posted: Wed Aug 08, 2012 8:17 am Post subject: |
|
|
Serge Yolkin,
извините за глупый вопрос, но и где это заменить? это каждый раз в выражение вставлять все?!. дайте пример на основе моего выражения, пожалуйста. |
|
| Back to top |
|
 |
Visitor7
Joined: 03 Jun 2012 Posts: 88
|
Posted: Wed Aug 08, 2012 9:30 am Post subject: |
|
|
eil
Если вам нужны слова с цифрами и подчеркиванием, то можно так
\b[\wЁА-ё]{5,6}\b
можно без \b, тогда лишь первый результат может быть неправильным если курсор поначалу стоит на середине слова.
Если проследите за галками("слово целиком" включено и "учитывать регистр" выключено), можно так:
[\wа-ё]{5,6}
Если не нужны цифры и подчеркивание и галки как надо:
[a-zа-ё]{5,6}
FeyFre
А как это сделать по современному? |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1888 Location: Vinnitsa, Ukraine
|
Posted: Wed Aug 08, 2012 10:55 am Post subject: |
|
|
Visitor7, собственно что сделать по современному?
\w итак означает символы входящие в состав слов, UniversalAlpha их иногда обзывают. Могу нарыть собственно списочек этих символов(стандарт) |
|
| Back to top |
|
 |
Visitor7
Joined: 03 Jun 2012 Posts: 88
|
Posted: Wed Aug 08, 2012 11:13 am Post subject: |
|
|
FeyFre
А, ну это да. \w эквивалентно [\dA-Z_a-z], точнее [0-9A-Z_a-z].
С другой стороны, иногда удобней пользоваться [A-z], иногда [A-Za-z], иногда [a-z] с нечувствительностью регистра. |
|
| Back to top |
|
 |
eil
Joined: 15 Nov 2009 Posts: 30 Location: Alex
|
Posted: Wed Aug 08, 2012 11:38 am Post subject: |
|
|
спасибо всем за ответы, и Visitor7 за примеры.
еще несколько вопроса:
- если \w эквивалентно [\dA-Z_a-z], точнее [0-9A-Z_a-z], то почему нет чегото подобного для эквивалента русскому алфавиту?(или вернее может юникоду)
- при поиске, скажем по \b[\wа-ё]{5,6}\b, выделяет только подходящее слово = а можно ли както чтобы выделило всю строку(от enter до enter), содержащую это слово?
- мало знаю о regex, но заметил что при англ диапазон a-z, почему в русс а-ё? |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1888 Location: Vinnitsa, Ukraine
|
Posted: Wed Aug 08, 2012 12:09 pm Post subject: |
|
|
| Quote: | | А, ну это да. \w эквивалентно [\dA-Z_a-z], точнее [0-9A-Z_a-z]. | И ещё один пользуется логикой 16 века? В стандарте явно прописано что такое слово и из каких "букв" оно состоит. И я Вам уверяю что не состоит только из a-zA-Z диапазонов. |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1888 Location: Vinnitsa, Ukraine
|
Posted: Wed Aug 08, 2012 12:13 pm Post subject: |
|
|
| Quote: | | - мало знаю о regex, но заметил что при англ диапазон a-z, почему в русс а-ё? | Долго и тяжко объяснять. Есть такое понятие COLLATION (погуглите). Так вот, в Вашем примере используется чисельный collation в то время как Вы привыкли к алфавитному. |
|
| Back to top |
|
 |
Serge Yolkin
Joined: 27 Jul 2010 Posts: 122
|
Posted: Wed Aug 08, 2012 12:32 pm Post subject: |
|
|
FeyFre
Логика 16 века гарантированно отрабатывает везде. В том числе, в осях и программах 16 века. В этом её прелесть. |
|
| Back to top |
|
 |
Visitor7
Joined: 03 Jun 2012 Posts: 88
|
Posted: Wed Aug 08, 2012 12:46 pm Post subject: |
|
|
| eil wrote: | | Почему нет чегото подобного для эквивалента русскому алфавиту? | Потому что английский распиарен до статуса международного, а о других никто не заботится. И потому что в каждом языке свои наборы символов на своих местах и пришлось бы для каждого языка делать свой аналог \w.
| eil wrote: | | а можно ли как-то чтобы выделило всю строку(от enter до enter) | а оно вам точно надо? тройной клик по слову или одинарный клик в поле перед началом строки вас не устраивает?
| eil wrote: | | мало знаю о regex, но заметил что при англ диапазон a-z, почему в русс а-ё? | Тоже о regular expressions только недавно узнал на этом форуме)) Я просто открыл таблицу символов в акелпаде, Правка\Вставить символ, и посмотрел последовательности в разных шрифтах, попробовал на разных кодировках - одно и то же.
Латинские символы расположены в такой последовательности: что-то, A-Z, [\]^_`, a-z, что-то. Соответственно, [A-z] захватит латинский алфавит с символами [\]^_`. А [A-Za-z] - только латинские символы.
Русские символы расположены в такой последовательности: что-то, Ё, старорусские большие, А-Я, а-я, ё, старорусские маленькие, что-то.
Соответственно, [А-я] захватит весь новый алфавит кроме ёЁ (то же что [А-Яа-я]). [а-ё] захватит все маленькие буквы(а-я и ё). Чтобы захватить весь новорусский алфавит - [ЁА-Яа-яё] ровно [А-ёЁ] ровно [А-яёЁ] и т.п.
Так что, в принципе, для поиска можно пользоваться захватом всего русского алфавита [Ё-ө] или схалтурить для простоты [Ё-ё].
FeyFre
Не знаю, отсюда поподробней. Я лишь вот это видел:
Справочник JavaScript: \w эквивалентно [A-Za-z0-9_].
Справка Akelpad: \w эквивалентно '[A-Za-z0-9_]'.
Только латиница, цифры и подчеркивание.
Поиск COLLATION путного по русски не выдает, а гуглить по английски мне знания языка не хватает, прочитаю только если меня в конкретную статью носом ткнуть. |
|
| Back to top |
|
 |
eil
Joined: 15 Nov 2009 Posts: 30 Location: Alex
|
Posted: Wed Aug 08, 2012 1:23 pm Post subject: |
|
|
Visitor7, спасибо за разбяснения с наборми символов. | Quote: | | а оно вам точно надо? тройной клик по слову или одинарный клик в поле перед началом строки вас не устраивает? | это нужно для того, чтобы скажем профильтровать переписку из чата и удалить все строки определенного пользователя -тоесть нужна замена всей строки с определенным словом/ником на пустую строку. |
|
| Back to top |
|
 |
Visitor7
Joined: 03 Jun 2012 Posts: 88
|
Posted: Wed Aug 08, 2012 1:51 pm Post subject: |
|
|
eil
Заменить:
Что: (^|\n)[^\n]*слово[^\n]*(\n|$)
Чем: \n
Смотрите в Akelpad Справка\Руководство\Синтаксис регулярных выражений.
Serge Yolkin
Точно, потерялся, спасибо.
Last edited by Visitor7 on Wed Aug 08, 2012 2:06 pm; edited 1 time in total |
|
| Back to top |
|
 |
Serge Yolkin
Joined: 27 Jul 2010 Posts: 122
|
Posted: Wed Aug 08, 2012 2:00 pm Post subject: |
|
|
Visitor7
слэш во вторых квадратных потерялся. |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1888 Location: Vinnitsa, Ukraine
|
Posted: Wed Aug 08, 2012 2:40 pm Post subject: |
|
|
| Quote: | | Поиск COLLATION путного по русски не выдает, а гуглить по английски мне знания языка не хватает, прочитаю только если меня в конкретную статью носом ткнуть. | Вас в википедию ткнуть? |
|
| Back to top |
|
 |
Visitor7
Joined: 03 Jun 2012 Posts: 88
|
Posted: Wed Aug 08, 2012 2:56 pm Post subject: |
|
|
FeyFre
Было б неплохо, мне она на запрос отвечает - "Создать страницу «COLLATION»".
Last edited by Visitor7 on Wed Aug 08, 2012 8:35 pm; edited 3 times in total |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|