Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярные выражения, помогите пожалуйста! 
:(
    Опции темы
ravana
Дата 27.5.2008, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 24.12.2007
Где: Rostov

Репутация: нет
Всего: нет



Помогите, плиз, составить регулярное выражение:
Удвоить вхождения каждого четного слова

Очень надо, а я в региксах совсем не понимаю..
PM MAIL   Вверх
SelenIT
Дата 27.5.2008, 20:28 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 7
Всего: 401



Если словом считать сплошную последовательность непробельных символов, а разделителем слов - один или больше пробельных, то как-то так:
Код

var text="Помогите, плиз, составить регулярное выражение: Удвоить вхождения каждого четного слова"

text = text.replace(/(\S+\s+)(\S+)/g,"$1$2 $2");

document.write(text);


Ловим первое слово вместе с разделителем в один "карман" (пару скобок), следующее за ним слово во второй, при замене второй карман вставляем дважды. Затем аналогично поступаем со следующей парой слов, и так далее по всему тексту (/g - флаг глобального поиска).


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
ravana
Дата 27.5.2008, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 24.12.2007
Где: Rostov

Репутация: нет
Всего: нет



Спасибо большое! =))

Добавлено через 4 минуты и 58 секунд
Ой, а можно еще вопрос? Что делают следующие региксы?

1) /.{80,}/ 
2) /(\w+)\s*=\s*(.*)\s*$/
3) /(d+\.?\d*)/g 
4) /(\b[^\WA-Z0-9_]+\b)/g
5) /(\b[^\Wa-z0-9_][^\WA-Z0-9_]*\b)/
6) /^m*(d?c{0,3}|c[dm])(l?x{0,3}|x[lc])(v?i{0,3}|i[vx])$/i 

PM MAIL   Вверх
SelenIT
Дата 27.5.2008, 21:02 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 7
Всего: 401



1) Не менее 80 любых символов.
2) Слово (в слово могут входить лат. буквы, цифры и подчеркивание), за ним знак равенства (возможно, окруженный пробелами) и что угодно до последнего пробела (типа параметр конфигурации и его значение)
3) Как минимум одна цифра, за которой, возможно, следуют точка и еще цифры (т.е. типа целое либо дробное число)
4) Слово, состоящее только из маленьких лат. букв. \b обозначает границу слова, ^ в начале квадратных скобок означает "что угодно кроме перечисленного", а перечислены любые символы кроме лат. букв, цифр и подчеркивания (\W), большие буквы (A-Z), цифры и подчеркивание - остались только маленькие буквы smile. То же самое можно было бы записать короче - /(\b[a-z]+\b)/g
5) Слово, имеющее 1 большую букву в начале и от нуля до бесконечности (*) маленьких лат. букв (см. п. 4). Тоже можно написать короче - /(\b[A-Z][a-z]*\b)/
6) Строка, начинающаяся (^ вне квадр. скобок) любым кол-вом (от нуля) букв m, затем идут либо (скобки с | означают альтернативу) 0 или одна буква d, за которой следуют от 0 до трех букв c (т.е. d, dc, dсс, ссс и т.п.), либо буква c, а за ней - одна из букв d или m (т.е. cd или cm). Дальше - по аналогии - могут идти l, x, lxxx и т.п. - либо xl или xc. А потом, соответственно, viii, vi, ii... - либо iv, ix. На этом строка должна закончиться ($). Регистр букв не учитывается (флаг i в самом конце).


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
ravana
Дата 28.5.2008, 07:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 24.12.2007
Где: Rostov

Репутация: нет
Всего: нет



SelenIT 
Огромное спасибо за помощь! =)
PM MAIL   Вверх
bars80080
Дата 28.5.2008, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



чёрт возьми, где бы так научиться делать регулярки

да знаю, иди читать аглицкий материал...
PM MAIL WWW   Вверх
PblCb
Дата 29.5.2008, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 29.5.2008

Репутация: нет
Всего: нет



Помогите пожалуйста сделать регулярные выражения для 3 заданий:
1)  Идентификатор в языке Паскаль (Проверка на наличие, на полное совпадение, выделение всех)
2) Удаление лишних пробелов (Оставить только по одному между словами)
3) Удаление пути из полного имени файла. Выделение пути из полного имени файла

очень надо, помогите пожжжжжж!!!!!!!!!!!
PM MAIL   Вверх
bars80080
Дата 29.5.2008, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



PblCb, а на форум по паскалю не пробовал обращаться?
PM MAIL WWW   Вверх
SelenIT
Дата 29.5.2008, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 7
Всего: 401



bars80080, моя телепательная машинка подсказывает, что человеку нужно что-то типа редактора Паскаля (с подсветкой) на яваскрипте.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
bars80080
Дата 29.5.2008, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



вах!  smile  это как?

у меня есть редактор с подсветкой синтаксиса javascript и pascal, но сомневаюсь что они работают вместе
PM MAIL WWW   Вверх
PblCb
Дата 29.5.2008, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 29.5.2008

Репутация: нет
Всего: нет



нет нет, именно регулярными надо. т.е. если слово var procedure function begin или end то вернуть его (их)
PM MAIL   Вверх
PblCb
Дата 29.5.2008, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 29.5.2008

Репутация: нет
Всего: нет



ну хотя бы другие два задания помогите!!!!
PM MAIL   Вверх
Nexis
Дата 31.5.2008, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 31.5.2008

Репутация: нет
Всего: нет



Здравствуйте уважаемые.
Подскажите, как пропарсить в отдельные переменные, аттрибуты (title, file)?

из текста вида:
Код

var text ='
<song artist="Имя артиста1" title="Название композиции1" file="http://bababa1.mp3" param1="35717955" param2="935411"/>
<song artist="Имя артиста2" title="Название композиции2" file="http://bababa2.mp3" param1="25367765" param2="768967"/>
<song artist="Имя артиста3" title="Название композиции3" file="http://bababa3.mp3" param1="48353532" param2="235523"/>
.........
';


С регэкспами никак не могу подружиться, к моему сожалению.

PM MAIL   Вверх
SelenIT
Дата 31.5.2008, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 7
Всего: 401



Nexis, это парсинг AJAX-ответа? А зачем делать это регулярками? Почему бы не использовать нативные XML-методы (getAttribute и т.п.)?



--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Nexis
Дата 31.5.2008, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 31.5.2008

Репутация: нет
Всего: нет



SelenIT, это не AJAX-ответ.

Если описывать более детально, то, есть некое flash-приложение, которое подгружает в себя playlist.
Выдача playlist`ов производится php-скриптом на сервере. Ответ выглядит в указанном выше формате "<song artist=........."
И как использовать getAttribute, если на входе имеем фактически набор текста, не сильно связанный с DOM?

А мне хотелось бы аккуратно выдирать из этого ответа  переменные. Кроме как через regexp`ы мне кажется это сделать не очень реально.

Или есть другие варианты?

/upd
Вопрос отпал.
Догадка по поводу XML-ответа была верной.
Я полученный ответ "доработал" до привычного xml-вида, и прекрасно пропарсил через DOMParser().

Это сообщение отредактировал(а) Nexis - 31.5.2008, 15:50
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0549 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.