![]() |
|
Модераторы: ginnie |
![]()
|
|
| skripnik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 15.3.2011 Репутация: нет Всего: нет |
Допустим, на входе есть такие строки:
1. Иван сказал: «Выпьем, так сказать, за знакомство» 2. Борис отметил: «Да вы, так сказать, пижон, сударь» 3. Семён подытожил: «Сегодня грядёт, так сказать, пир на весь мир» На выходе нужно получить: 1. Выпьем за знакомство 2. Да вы пижон, сударь 3. Сегодня грядёт пир на весь мир Как это сделать с помощью PCRE? Какой должен быть шаблон? Что-то типа этого?
Но оно всё равно «так сказать» не вырезает из результатов поиска. Эта задача вообще решаема средствами PCRE? P. S. В том-то и заковырка, что нужно обойтись именно регулярными выражениями. Хочу понять, возможно ли это или же придётся усложнять логику функции в PHP. Задача на самом деле куда сложнее, это только для наглядности такой простой пример приведён. |
|||
|
||||
| alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 11 Всего: 14 |
С PCRE не сталкивался, но судя по вашему выражению резальтат вы берете с первых сохраняющих скобок, но в них же входит и содержимое вторых скобок, не сохраняющих, просто результат совпадения не сохряняется в отдельную переменную. Попробуйте таким выражением с сохранением результата $1 и $2:
Это сообщение отредактировал(а) alezzz - 17.3.2011, 17:37 |
|||
|
||||
| ming |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 30.1.2009 Где: Новосибирск Репутация: 1 Всего: 3 |
Но учитывая тот факт, что
то в случаях когда критично быстродействие, лучше применить серию:
Это сообщение отредактировал(а) ming - 15.3.2011, 20:12 |
||||||
|
|||||||
| alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 11 Всего: 14 |
||||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Регулярные выражения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |