Форум программистов, компьютерный форум, киберфорум
PHP: RegExp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
149 / 139 / 57
Регистрация: 05.06.2009
Сообщений: 310

Ошибка в регулярном выражении

24.10.2010, 14:17. Показов 2952. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, возникла проблема с регулярным выражением.
PHP
1
regexp = "|<span>\s+<b>24 октября 2010\.<\/b>\s+&nbsp;((.|\s)+)<\/span>|"
Возникает ошибка: Warning: preg_match_all() [function.preg-match-all]: Unknown modifier '\' in Z:\home\localhost\www\site_creator\site_ creater.class.php on line 316.
Судя по всему, ошибка возникает в месте ((.|\s)+). Каким образом это возможно решить?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.10.2010, 14:17
Ответы с готовыми решениями:

Ошибка в регулярном выражении
Приветствую!! Помогите найти ошибку: preg_match_all(&quot;/&lt;a(*=\&quot;?*\&quot;?)*(href=\&quot;*\&quot;)(*=\&quot;?*\&quot;?)&gt;/iU&quot;,$res,$urls); выдает...

Ошибка в регулярном выражении
Составляю регулярное выражение для перевода url из текста, в активную ссылку. $text =...

Ошибка в регулярном выражении
Доброго времени суток. В чем может быть ошибка: Warning: preg_match_all(): Compilation failed: range out of order in character...

15
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
24.10.2010, 14:29
EvgeniiSp, покажите код, где написана функция preg_match_all()
0
 Аватар для GalaX
701 / 573 / 59
Регистрация: 18.11.2008
Сообщений: 2,147
24.10.2010, 14:49
а так?
PHP
1
regexp = "#<span>\s+<b>24 октября 2010\.<\/b>\s+&nbsp;((.|\s)+)<\/span>#"
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
24.10.2010, 14:58
GalaX, если на то пошло, то уже лучше так:
PHP
1
regexp = "/<span>\s+<b>24 октября 2010\.<\/b>\s+&nbsp;((.|\s)+)<\/span>/"
0
149 / 139 / 57
Регистрация: 05.06.2009
Сообщений: 310
24.10.2010, 15:00  [ТС]
romchiksoad,
PHP
1
2
3
    // get a text
            $regexp = "|<span>\s+<b>24 октября 2010\.<\/b>\s+&nbsp;((.|\s)+)<\/span>|";
            preg_match_all($regexp, $content, $text);
GalaX, так не работает.
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
24.10.2010, 15:00
или так:
PHP
1
regexp = "#<span>\s+<b>24 октября 2010\.</b>\s+&nbsp;((.|\s)+)</span>#"
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
24.10.2010, 15:01
EvgeniiSp, что в переменной content
0
24.10.2010, 15:01

Не по теме:

Цитата Сообщение от romchiksoad Посмотреть сообщение
то уже лучше так
мм.. точно!

0
149 / 139 / 57
Регистрация: 05.06.2009
Сообщений: 310
24.10.2010, 15:06  [ТС]
Цитата Сообщение от romchiksoad Посмотреть сообщение
EvgeniiSp, что в переменной content
Содержимое web-страницы $curl = curl_init($get_url);.

Добавлено через 2 минуты
С кодом у меня все в порядке. Перед этим регулярные выражения работали правильно, а после создания выражения с символом - "|", работать перестало.
0
 Аватар для GalaX
701 / 573 / 59
Регистрация: 18.11.2008
Сообщений: 2,147
24.10.2010, 15:08
Цитата Сообщение от EvgeniiSp Посмотреть сообщение
а после создания выражения с символом - "|", работать перестало.
дык измени их
0
149 / 139 / 57
Регистрация: 05.06.2009
Сообщений: 310
24.10.2010, 15:13  [ТС]
GalaX, нужный результат получается только с таким выражением. Может можно и по-другому сделать, но я не большой специальст в рег. выражениях. Это выражение рабочее. Проверено на http://www.pcre.ru/eval/, но у меня почему-то выдает ошибку.
0
 Аватар для GalaX
701 / 573 / 59
Регистрация: 18.11.2008
Сообщений: 2,147
24.10.2010, 15:35
последний вариант, который предложил romchiksoad, синтаксически верно, если не работает, то скорее всего сама регулярка неверно записана. что она вообще искать и заменять?
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
24.10.2010, 19:00
EvgeniiSp, Сформулируйте задачу, чтО надо искать?
/выражение/модификаторы
Изначально Вы метасимвол | использовали для разделителя, поэтому оно на первой попавшейся | закончило само выражение и все остальное посчитало модификаторами. Если в таком случае | заэкранировать, то получится символ "|", и метсимвол альтернативы уже никак не получится.
0
149 / 139 / 57
Регистрация: 05.06.2009
Сообщений: 310
25.10.2010, 08:32  [ТС]
GalaX, выражение должно получить текст между <span>\s+<b>24 октября 2010\. и <\/span>.
Когда обрамляю выражение символами # и / возникает ошибка "Соединение закрыто удалённым сервером", сам скрипт работает на локальной машине.
Как можно переписать часть ((.|\s)+) на что-нибудь подобное?
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
25.10.2010, 08:46
Цитата Сообщение от EvgeniiSp Посмотреть сообщение
Как можно переписать часть ((.|\s)+) на что-нибудь подобное?
Не в этом ошибка скорей всего.
Цитата Сообщение от EvgeniiSp Посмотреть сообщение
Warning: preg_match_all() [function.preg-match-all]: Unknown modifier '\' in Z:\home\localhost\www\site_creator\site_ creater.class.php on line 316
Эта ошибка говорит о другом, по крайней мере.

Цитата Сообщение от EvgeniiSp Посмотреть сообщение
возникает ошибка "Соединение закрыто удалённым сервером"
Это Вы писали эту ошибку или PHP, а Вы просто перевели на свой лад? Если так, то покажите ошибку, которую пишет сам PHP.

Добавлено через 2 минуты
Code
1
/<span>\s+<b>24 октября 2010\.<\/b>\s+(\s\m)+<\/span>/
0
149 / 139 / 57
Регистрация: 05.06.2009
Сообщений: 310
25.10.2010, 08:58  [ТС]
Цитата Сообщение от romchiksoad Посмотреть сообщение
Это Вы писали эту ошибку или PHP, а Вы просто перевели на свой лад? Если так, то покажите ошибку, которую пишет сам PHP.
Эту ошибку выдает браузер на русском языке.
Проблема решена. Переписал немного выражение:
PHP
1
$regexp = "|<span>\s+<b>24 октября 2010\.<\/b>\s+&nbsp;([.\s\S]*)<\/span>\s+<p>|";
Всем спасибо за участие!

Добавлено через 2 минуты
Цитата Сообщение от romchiksoad Посмотреть сообщение
/<span>\s+<b>24 октября 2010\.<\/b>\s+(\s\m)+<\/span>/
Возвращает пустой массив:
PHP
1
2
3
4
5
6
7
8
array(2) {
  [0]=>
  array(0) {
  }
  [1]=>
  array(0) {
  }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.10.2010, 08:58
Помогаю со студенческими работами здесь

Ошибка в регулярном выражении
Есть текст $text = '1#{\b 37\par К88\par \b0 \b Акулова, З. М. \b0 \par \tab Куда пойти учиться? : Информ. - реклам. справ / З. М....

Парсинг в регулярном выражении
Добрый день. Нужна помощь в регулярном выражении. Как получить содержимое тегов h1, h2 и т.д.? Пробую так: ...

Спец символы в регулярном выражении
Парни подскажите такую вещь . Вот есть вражение 'arts/(+)/(+)' =&gt;'arts/view/$1/$2' , вторая маска отдает число , которое используется как...

Получить значения элементов в регулярном выражении
Уже несколько дней бьюсь над такой вот незамысловатой задачкой: Имеется строка: ...

Четные и нечетные символы в регулярном выражении
Помогите с регуляркой, пожалуйста. Как с помощью регулярного выражения найти и проверить каждый второй элемент в строке? Все излазил,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru