Показать сообщение отдельно
  #3 (permalink)  
Старый 20.02.2012, 14:06
Профессор
Посмотреть профиль Найти все сообщения от Mахmахmахimus
 
Регистрация: 10.02.2012
Сообщений: 254

Сообщение от KupueIIIKo
Не могу я осилить регулярные выражения как ни пытался! Не дается данная наука!
регулярное выражение это строка,
только не обычная строка а которая пишется между двумя слешами
/строка/
вот что такое регулярне выражение.

Можно искать совпадение с текстом этой регулярной строки используя метод Матчь.
Например

"обычная строка конь".match(/регулярная строка/)

вся эта херня вернет массив всех нахождений регулярной строки внутри обысной.

"обычная строка конь".match(/конь/)

найдет слово конь в обычной строке и вернетс ним массив ["конь"]

если бы было так

"обычная конь конь строка конь".match(/конь/)

то матчь нашел бы коня 3 раза в обычной строке и вернуоло бы массив всех нахождений
["конь", "конь", "конь"]

Регулярные выражения отличается от обычных строк не только отсутствием кавычек но еще и тем что в них можно использовать специальные символы, а в строках нет.
Например в регулярных выражениях есть комбинация \d и если мы её напишем, то этот спецсимвол(так они называются) будет означать что тут мы ожидаем увдеть цифру.

например


"обычная конь1 конь2 строка конь8".match(/конь\d/)

вернет массив из ["конь1", "конь2", "конь8"] таким образом если мы мы можем не знать какую именно цифру искать, но можем просто написать что после слова конь ожидается цифра))

каждый такой спец-символ вроде \d означает ТОЛЬКО ОДНУ ЦИФРУ)
То есть в "конь86".match(/конь\d/) найдется только ["конь8"]

то есть если мы ождаем после коня увидеть 2 цифры
то мы должны регулярное выражение писать так /конь\d\d/

все кони после которых идет НЕ 2 цифры не будут подходить и не проМатчатся)

и еще кое что, эти регулярки имеют типа режимы работы, они указываются после последнего слеша

/регулярка/g
/регулярка/i
/регулярка/m


g — глобальный поиск (обычно если епосле последнего слеша не поставить букву g, то ищется ТОЛКО ПЕРВОЕ СОВПАДЕНИЕ, если поставить g, то ищутся все совпадения); В примере выше с конем нужно ставить регулярку в режим g чтобы нашлись все кони а не только первый.

i — не различать строчные и заглавные буквы;

m — многострочный поиск.

можно использовать несколько флагов(эти буковки так называются) одновременно

например
/кОнЬ/gi - искать все совпадения с регуляркой а не только первое при том не различать заглавные и строчные.

спецсимволы которые понимает регулярка можешь посмотреть вот тут
http://javascript.ru/RegExp

Например есть даже спецсимвол означающий что мы ожидаем повторение предыдущего перед ним символа один или более раз, это символ +

то есть за место "конь86".match(/конь\d\d/) мы можем написать

"конь86".match(/конь\d+/)

тогда найдутся все кони после который идет цифрерный символ один или более раз))
так же есть спецсимвол * он как и плюс, только означает что символ перед ним идет ноль или более раз.

То есть может быть сколько угодно раз, а может и небыть)), а с плюсом должен хотя бы один раз быть.

дальше думаю сам разберешься.

Последний раз редактировалось Mахmахmахimus, 20.02.2012 в 14:39.
Ответить с цитированием