Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 24.02.2012, 04:25
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

alert(
'    сок   молоко     работа  '.match( /\S+/g )
)
__________________
29375, 35
Ответить с цитированием
  #12 (permalink)  
Старый 24.02.2012, 04:27
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Хах, спасибо.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #13 (permalink)  
Старый 24.02.2012, 05:03
Профессор
Посмотреть профиль Найти все сообщения от Mахmaxmaximus
 
Регистрация: 22.02.2012
Сообщений: 163

FINoM,
хочешь регуляркам за 20 минут научу)? способ расскажу, я за час выучил пока этот способ не нашел.
Ответить с цитированием
  #14 (permalink)  
Старый 24.02.2012, 05:18
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от Mахmaxmaximus
хочешь регуляркам за 20 минут научу)? способ расскажу, я за час выучил пока этот способ не нашел.
Ну а чего меня спрашивать? Статью зафигач, чтоле.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #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.
Ответить с цитированием
  #16 (permalink)  
Старый 24.02.2012, 05:42
Профессор
Посмотреть профиль Найти все сообщения от Mахmaxmaximus
 
Регистрация: 22.02.2012
Сообщений: 163

А для наглядности скачай эклипс и установи на него плагин для проверки регулярок в реальном времени, я без него теперь жить не могу)) RegEx

он добавляет "вид" в эклипс который оч просто вызвать, научу потом если эклипс не юзал ни разу.
Ответить с цитированием
  #17 (permalink)  
Старый 24.02.2012, 09:32
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от FINoM
Помогите плиз с регуляркой: нужно разбить строку на слова, делаю так:
Я, наверное, уже опоздал, но тем не менее. Логика в моей реализации простая - ищем любые символы кроме пробельных.
var x = ' сок   молоко     работа ';
var z = x.match( /[^\s]+/g );
alert( z.join( '\n' ) );
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #18 (permalink)  
Старый 24.02.2012, 16:12
Профессор
Посмотреть профиль Найти все сообщения от Mахmaxmaximus
 
Регистрация: 22.02.2012
Сообщений: 163

nerv_,
но точка доллар цифра это тоже непробельные символы, где логика?
Ответить с цитированием
  #19 (permalink)  
Старый 24.02.2012, 16:52
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

Я правильно понимаю, что пробелы только с начала и в конце?
<script>
var str = '    сок   молоко     работа  '
var new_str = str.split(/\s+/); //["", "сок", "молоко", "работа", ""]
new_str.pop()
new_str.shift()
for(i=0;i<new_str.length;i++) {
console.log(new_str[i]) // ["сок", "молоко", "работа"]
console.log(new_str.length) //3
}
</script>

_____________
Блин скинул, и не посмотрел что есть 2ая страница)
__________________
оляля, ололо
Ответить с цитированием
  #20 (permalink)  
Старый 24.02.2012, 17:29
Профессор
Посмотреть профиль Найти все сообщения от Mахmaxmaximus
 
Регистрация: 22.02.2012
Сообщений: 163

var text = "А я люблю обмазываться свежим дезодорантоми и дрочить. Каждое 23-е февраля я хожу по земле с черным мешком для мусора и собераю в него все дезодоранты и кремы для бриться которые мне дарят. На два полных мешка целый день уходит. Зато, когда после тяжёлого дня я прихожу домой, иду в ванну, включаю горячую воду…ммм и сваливаю в нее свое сокровище. И дрочу, представляя, что меня поглотил единый организм защиты отечества. Мне вообще кажется, что отечество, умеет думать, у него есть свои семьи, города, чувства, не смывайте их в унитаз, лучше приютите у себя, говорите с ними, ласкайте их…. А вчера в ванной, мне преснился чудный сон, как будто я нырнул в море, и оно прератилось в отечество, рыбы, водоросли, медузы, все из отечества,требующее защиты даже небо, даже Путин!"


alert(text.match(    /[a-zа-я\d_-]+/ig     ))



разберем на составные

[a-z    а-я    \d    _    -]+


[ab] - означает один символ ИЛИ а ИЛИ бэ, то есть квадратные скобки имею смысл ИЛИ.

в нашем примере в квадратных скобках есть 5 членов:

1) a-z любая буква от a до z
2) а-я любая буква от а до я
3) \d любая цифра
4) _ жесткий пробел
5) - дефис

так вот, квадратные скобки означают ОДИН СИМВОЛ

при чем символ этот может подходить под первый член , под ИЛИ под второй член, и.т.п.
я бы мог тупо написать в квадратных скобках ВСЕ символы ожидаемые в словах) но мне вломы писать алфавиты по этому я воспользовался комбинациями означающими алфавиты))

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

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с регуляркой tazododu Общие вопросы Javascript 11 01.03.2010 09:42
помогите с регуляркой ... motoroller Элементы интерфейса 1 23.11.2009 22:01
помогите с регуляркой Holod Общие вопросы Javascript 1 19.08.2009 12:02
помогите задать селектор! mkrylov jQuery 2 28.06.2009 20:34
Помогите с регуляркой... alexKniaz AJAX и COMET 0 03.11.2008 01:16