Показать сообщение отдельно
  #15 (permalink)  
Старый 24.02.2012, 05:29
Профессор
Посмотреть профиль Найти все сообщения от Mахmaxmaximus
 
Регистрация: 22.02.2012
Сообщений: 163

во первых вот отрывок из моей "книги".

Цитата:
регулярное выражение это строка,
только не обычная строка а которая пишется между двумя слешами
/строка/
вот что такое регулярне выражение.

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

"обычная строка конь".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+/)
тогда найдутся все кони после который идет какая-то цифра один или более раз))
дальше сами разберетесь.
А во вторых вот способ как я научился регуляркам за 3 часа с нуля.
Это задача.

Используя эту таблицу http://javascript.ru/RegExp
, составь регулярку, которая будет находить в обычном тексте ссылки на ютьюб, при том будет сохранять в скобочную группу айдишник видео внутри этой ссылки.


потом напиши функцию чтобы она находила в тексте все такие ссылки на ютьюб, и заменяла их чисто айдишниками ютьюбовских видео.

Последний раз редактировалось Mахmaxmaximus, 24.02.2012 в 05:41.
Ответить с цитированием