imho.ws |
![]() |
![]() |
![]() |
# 1 |
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
И снова регулярные выражения
Уважаемые, спасибо за Ваше внимание вообще.
Задача в общем виде: Нужно сопоставить шаблону ЛИБО одно слово (разделение пробелом) ЛИБО все выражение в кавычках (пусть в одинарных, не суть) Чтобы все однозначно всеми понималось, пару примеров: 1) Есть текст $text = '123456 qaz qwerty'; Хочу чтобы выбралось 123456 2) Есть текст $text = "'123456 qaz' qwerty"; Хочу чтобы выбралось 123456 qaz - Без кавычек Итак, в чем основная сложность и до чего я пока додумался: 1) PHP код:
PHP код:
В первом случае номера совпадений для выражения в кавычках и для одиночного слова будут разными, порядковыми (1 и 2 соответственно), это и понятно - ведь 2 раза захватывается паттерн, два раза круглые скобки, но хочется чтобы было в одном элементе. Во втором случае элемент 1, НО, захватываются еще и сами кавычки, а хотелось бы без них (чтобы потом не анализировать это). Как их исключить там - пока не додумался. Буду благодарен свежим мыслям и конкретным решениям.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
![]() |
![]() |
# 2 |
Full Member
Регистрация: 11.12.2002
Сообщения: 864
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Подниму тему.
Возможно ли найти строку НЕ содержащюю подстроку ? Что-то вида Код:
.*!(ТЕХТ).* Код:
1. Раз два три 2. четыре пять 3. шесть семь Нужно это поставить в linefilter WinMerge (там стоит автоматический NOT), для поиска измененных строк содержащих определенное слово. Последний раз редактировалось crawler; 22.06.2006 в 18:28. |
![]() |
![]() |
# 3 | |
Full Member
Регистрация: 15.09.2004
Адрес: Палата74@Дурдом.RU
Пол: Male
Сообщения: 593
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Попробуй поиграться с модификатором "?!", например: (?!ТвойТекст), только без всяких там ".*" - эти схавают что угодно ![]()
__________________
Количество ума на Земле постоянно, а население растёт... |
|
![]() |
![]() |
# 5 | |
Full Member
Регистрация: 15.09.2004
Адрес: Палата74@Дурдом.RU
Пол: Male
Сообщения: 593
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
__________________
Количество ума на Земле постоянно, а население растёт... |
|
![]() |
![]() |
# 7 | ||
Full Member
Регистрация: 15.09.2004
Адрес: Палата74@Дурдом.RU
Пол: Male
Сообщения: 593
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Цитата:
У меня под линухом не сработал, но чем черт не шутит? ![]()
__________________
Количество ума на Земле постоянно, а население растёт... |
||
![]() |
![]() |
# 10 |
Full Member
Регистрация: 15.11.2002
Адрес: Moscow
Сообщения: 834
![]() ![]() ![]() ![]() ![]() |
подскажие, плз, каким регулярным выражением можно "зацепить" и удалить следующие строчки
Код:
<DIV><A href="text.html" class="more">... whole issue</A></DIV> <DIV><A href="article.html" class="more">... все статьи </A></DIV> <DIV><A href="channel.html" class="more">... другие материалы</A></DIV> делаю так Код:
var reg = /<A href=\"[0-9a-zA-Z_\.]+\" class=\"more\">[0-9a-zA-Z_а-яА-Я\.]+<\/A>/ text = text.replace(reg, ""); Последний раз редактировалось LAndrew2; 15.11.2006 в 00:30. |
![]() |
![]() |
# 11 |
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
LAndrew2 на первый взгляд все верно, только пробелы не учтены, возможно что-то вроде:
Код:
var reg = /<A href=\"[0-9a-zA-Z_\.]+\" class=\"more\">.+?<\/A>/g text = text.replace(reg, "");
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
![]() |
![]() |
# 12 |
Full Member
Регистрация: 15.11.2002
Адрес: Moscow
Сообщения: 834
![]() ![]() ![]() ![]() ![]() |
вроде работает... а что означает конструкция
Код:
.+? а! вроде понял... любое кол-во символов (за исключением символа новой строки) и любое (в т.ч. нулевое) кол-во слов... Последний раз редактировалось LAndrew2; 15.11.2006 в 12:21. |
![]() |
![]() |
# 13 | |
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
![]() |
![]() |
# 14 |
Full Member
Регистрация: 15.11.2002
Адрес: Moscow
Сообщения: 834
![]() ![]() ![]() ![]() ![]() |
есть задача:
1) имеется список имен файлов, все имена в определенном формате, данный формат задается пользователем, например, "%l4 - %l1 - %l2.mp3", где, например, %l1 исполнитель, %l2 - композиция, %l4 - трек 2) имеется набор файлов, все имена этих файлов также в определенном формате, заданном пользователем, например, "track %f4 %f#.mp3", где, например, %f1 исполнитель, %f2 - композиция, %f4 - трек, %f# - любые символы 3) задано, например, что файл в списке соответствует реальному файлу, если %l4=%f4 (это условие может меняться пользователем) необходимо смэтить реальные файлы с файлами в списке и показать "реальное имя -> имя в списке" для каждого файла для выполнения задачи необходимо использование регулярных выражений, для поиска соответствий необходимо заменить все выражения типа %l или %f на (.*), но чтобы потом получить и использовать значения (порядок которых может быть произвольным), надо как-то запоминать в какой позиции (.*) оказалось. потому вопрос: возможно ли значениям в скобках, типа (.*), присваивать имена и потом к ним обращаться по именам, а не по номеру в массиве? |
![]() |
![]() |
# 17 |
::VIP::
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417
![]() ![]() ![]() |
на http://www.regular-expressions.info/vbscript.html написано, что на VBScript изя делать так... меняй язык
![]()
__________________
Nunc est bibendum |
![]() |
![]() |
# 19 |
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
А на Java-Script тоже не работает? (это так, просто предложение попробовать, проверять нету времени)
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
![]() |
![]() |
# 20 | |
::VIP::
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417
![]() ![]() ![]() |
Цитата:
![]() судя по-всему тоже не работает...
__________________
Nunc est bibendum |
|
![]() |