Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
как выбрать все куски текста кроме подстроки "blbla" например? например, текст: "_ыв_blbla_к_мв_blbla_аыыв_blbla" Нужно получить: "_ыв_", "_к_мв_", "_аыыв_" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 11:56 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
D_Pavel, Код: php 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 12:08 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
Это не регулярное выражение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 12:45 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
Например, если подстрока равна "blbla" или "blblb" или "blblc" или "blbld" и т.д., то через explode не получится, нужно через регулярное выражение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 12:57 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
Код: php 1. Вот типа того нужно, только с правильным регуляторным выражением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 13:02 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
D_PavelНапример, если подстрока равна "blbla" или "blblb" или "blblc" или "blbld" и т.д., то через explode не получится, нужно через регулярное выражение. что значит ИЛИ? вы в цикле будете перебирать эти варианты? или ходите их сразу описать в одном регулярном выражении? если в цикле, то explode вам хватит за глаза. если хотите регуляркой - то у вас проблема. регулярки незаточены искать то что ненужно, они наоборот ищут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 13:22 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
r u, возможно вам хватит этого выражения Код: php 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 13:34 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
Отлично! Это работает! Но к сожалению только на подстроках только фиксированной длины. Если подстрока вида: \[img\](.*?)\[/img\] то выходит ошибка: Warning: preg_replace_callback(): Compilation failed: lookbehind assertion is not fixed length at offset 3742 in /data/www/public_html/sex.ru/index.php on line 224573 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 13:42 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
D_Pavel, что вы вообще делаете? опишите подробно начальную исходную задачу. а то, есть ощущение что вы решаете совсем не ту задачу. сами себе усложняете жизнь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 13:49 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
r u, если парсите bb-коды, то есть куча готовых библиотек, и готовых регулярок. велосипед изобретать нет необходимости ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 13:50 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
мне нужно обработать текст функцией htmlspecialchars но при этом не испортить текст внутри тегов ..., и т.д. Вот так сделал, но не выбираются куски текста с начала и с конца строки, выбираются только куски между двух тегов: Код: php 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 13:54 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
блин, в предыдущем сообщении теги спарсились. Не нужно готовых больших библиотек, нужна одна маленькая регулярка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 13:55 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
D_Pavelмне нужно обработать текст функцией htmlspecialchars но при этом не испортить текст внутри тегов ... , и т.д. Это очень сильно отличается от задачи описанной в самом начале. с этого и нужно было начинать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 13:58 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
D_Pavel, решайте задачу в общем случае. то есть надо найти всЁ что лежит ВНЕ ББ-кодов. неважно каких ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 14:00 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
r u, Код: php 1. так непойдет? выберет все что ВНЕ ЛЮБЫХ ББ кодов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 14:07 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
r u, а нет.. выдернет еще и то что внутри открывающего и закрывающего. в общем либотн надо несколькими регулярками, либо получится большая и медленная ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 14:09 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
не знаю... может это говнокод, но в своё время я решал подобную задачу и делал это так: 1. вызываю preg_match_all для поиска всего, что менять не надо и запоминаю найденные значения 2. вызываю preg_replace и заменяю всё, что надо оставить без изменений, на некую комбинацию, которой заведомо нету в тексте (например "[$$]") 3. в получившейся строке делаю все требуемые замены 4. делаю explode получившейся строки по ставленному ранее разделителю ("[$$]"). 5. запускаю for по получившемуся массиву и начинаю сборку новой строки вставляя между уже собранной частью и новой значение из массива, полученного в первом пункте, с соответствующим индексом. на выходе получается нужное значение. Не думаю что это сильно оптимально... зато быстро и просто (по строке на каждый пункт + строчки 4 на последний, получается до десятка строк на всё). Как бонус на выходе уже имеем отобранные значения из списка (мало ли, если там какие-то действия аля сохранения файлов надо сделать исходя из значений в тех же [img][/img]) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 14:27 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
P.S. думаю понятно, пункты 1 и 2 используют одну и ту же регулярку. Но на всякий случай уточняю :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 14:30 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
D_Pavelмне нужно обработать текст функцией htmlspecialchars но при этом не испортить текст внутри тегов _=http://...]..., и т.д. Вот так сделал, но не выбираются куски текста с начала и с конца строки, выбираются только куски между двух тегов: Код: php 1. 2. А почему этот вариант не работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 15:01 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
Програмёр1. вызываю preg_match_all для поиска всего, что менять не надо и запоминаю найденные значения ну так помогите ТСу, ему как раз нужна эта регулярка)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 19:26 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
r uПрограмёр1. вызываю preg_match_all для поиска всего, что менять не надо и запоминаю найденные значения ну так помогите ТСу, ему как раз нужна эта регулярка)) а в чём сложность то? "#\\[img\\].*?\\[/img\\]#" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 19:40 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
Програмёра в чём сложность то? "#\\[img\\].*?\\[/img\\]#" в том что у него не только тег img, а еще куча других BB кодов, которые ненадо трогать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 05:30 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
Подскажите почему это выражение не работает? Код: php 1. 2. 3. 4. Выдает: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. А начало и конец текста не захватывает почему то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 08:06 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
D_PavelПодскажите почему это выражение не работает? потому что у вас нет выражения описывающего текст сначала и в конце. ^ это просто начало, какие либо данные туда не входят тоже и с концом строки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 09:11 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
r uПрограмёра в чём сложность то? "#\\[img\\].*?\\[/img\\]#" в том что у него не только тег img, а еще куча других BB кодов, которые ненадо трогать Снова не вижу проблемы :) "#\\[([a-z]+) ([^\\]]+)\\](.*?)\\[/\\1\\]#" в группах получаем название, параметры и текст. И кстати, может я конечно где-то невнимательно читал, но разве автор хоть раз упоминал, что у него в тексте есть что-либо кроме img (в последующем заменено на url)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 09:20 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
Програмёрно разве автор хоть раз упоминал, что у него в тексте есть что-либо кроме img D_Pavelмне нужно обработать текст функцией htmlspecialchars но при этом не испортить текст внутри тегов =http:/ /]..., и т.д. Програмёр, мне ничего доказывать ненужно)) если можете - помогите ТСу решить его конкретную задачу. а если неможете - то к чему все эти разговоры о простоте решения? я подобную задачу тоже решал. НО Тс то хочет ОДНОЙ РЕГУЛЯРКОЙ. вот хочу посмотреть кто что родит) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 09:25 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
D_Pavel, /(?<=\]|^)[^\[\]]+?(?=\[[^/]|$)/ а для общего случая учитывающего особенности регулярок, их вложенность и т.д. регулярка будет значительно сложнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 09:53 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
D_PavelПодскажите почему это выражение не работает? Код: php 1. 2. 3. 4. Выдает: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. А начало и конец текста не захватывает почему то. извращаемся как можем :)... Если правильно понял то, что Вы хотели написать, то выглядеть это будет так: #(?:\[^\]]+\].*?\[/url\]|.*?(?=\[^\]]+\].*?\[/url\])|.*)# Но я лично против таких регулярок. Они вызывают сложности в понимании (представьте я сейчас вместо url напишу что-то универсальное аля [a-z]+ и \1 ... выражение станет просто нечитабельным). в предложенном случае на выходе получаем Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 09:56 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
r uПрограмёрно разве автор хоть раз упоминал, что у него в тексте есть что-либо кроме img D_Pavelмне нужно обработать текст функцией htmlspecialchars но при этом не испортить текст внутри тегов =http:/ /]..., и т.д. Програмёр, мне ничего доказывать ненужно)) если можете - помогите ТСу решить его конкретную задачу. а если неможете - то к чему все эти разговоры о простоте решения? я подобную задачу тоже решал. НО Тс то хочет ОДНОЙ РЕГУЛЯРКОЙ. вот хочу посмотреть кто что родит) Ну... мало ли что автор хочет )) Регуляркой то распарсить строку можно, но что бы выполнить htmlspecialchars всёровно нужны дополнительные движения. Например элементарно надо заюзать callback. Тем более, что как не крути, но если в состав регулярки входит то, что наоборот нам не требуется, то оно попадёт в результат и нам всеровно нужно будет это исключать. То есть как минимум уже 2 регулярки (одна основная, а вторая для отбрасывания ненужного внутри callback) Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Вот... первый html-тэг экранируется (видно сам текст тэга), а второй остаётся без изменений (тот, что внутри bb-тэга). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 10:29 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
D_Pavel, Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 10:57 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
мля..., ему ненужно то что внутри открытого и закрытого тега ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 11:12 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
Решение почти найдено. Осталось только подкорректировать немного. http://govnoforum.ru/?k=171 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 11:41 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
r uмля..., ему ненужно то что внутри открытого и закрытого тега Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: php 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 11:46 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
D_PavelРешение почти найдено. глюкавое оно какоето. и на решение совсем не тянет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 11:48 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
А в чем там глюк? Я проверил на тестовой строке, вроде работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 11:56 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
А, ну это то же самое что мля... написал! Таки в чем его глюк? Вот во что я его превратил: Код: php 1. 2. Единственно есть недостаток, что нет проверки на закрытие тега тем же самым тегом который был открыт. Например Код: php 1. зачтется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 12:11 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
D_PavelА в чем там глюк? Я проверил на тестовой строке, вроде работает. аа ) ну тогда поздравляю. т.е. вопрос решён полностью? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 12:12 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
Блин, как отредактировать свое сообщение? Код: php 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 12:14 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
r uD_PavelА в чем там глюк? Я проверил на тестовой строке, вроде работает. аа ) ну тогда поздравляю. т.е. вопрос решён полностью?Ну почти. Я выше писал что корректное закрытие тегов не проверяется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 12:15 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
D_PavelЯ выше писал что корректное закрытие тегов не проверяется. а вы в условии задачи это гдето оговаривали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 12:17 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
нет. я только что придумал это дополнительное условие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 12:22 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
D_Pavel Единственно есть недостаток, что нет проверки на закрытие тега тем же самым тегом который был открыт. Например Код: php 1. зачтется. чем мой вариант не устроил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 12:52 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
Слишком много букв. Но вообще это тоже хороший вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 13:08 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
D_PavelСлишком много букв. Но вообще это тоже хороший вариант. вариант Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 15:00 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
D_PavelСлишком много букв. Но вообще это тоже хороший вариант. может тогда так? Код: php 1. 2. 3. 4. 5. 6. 7. С описанной задачей справляется :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 17:18 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
Всякие извращения с "серьезными" регулярными выражениями жрут в конечном итоге много ресурсов. Здесь нужна простая очередь ака курим напр. тот же phpBB. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 20:13 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
Блин зачем вы все время слэши удваиваете? Так ведь их смысл теряется! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 06:12 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
многабукаф...$regex = "(?:$bbsmsg|^)\K.+?(?=$bbsmsg|$)"; Что такое "\K" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 06:57 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
многабукаф... вариант Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Это то что надо, спасибо! Напиши свой настоящий номер сотового. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 08:21 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
D_PavelЭто то что надо, спасибо! а как же? D_PavelСлишком много букв. )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 09:03 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
На таком примере выдает ошибку 500! Код: php 1. Что делать? Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 10:28 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
r uD_PavelЭто то что надо, спасибо! а как же? D_PavelСлишком много букв. )) Когда не много букв как в этом варианте - мне нравится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 10:29 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
D_Pavelr uпропущено... а как же? пропущено... )) Когда не много букв как в этом варианте - мне нравится. Не понимаю я Вас. Вы экономите буквы, убивая читабельность и производительность. Вот сейчас составили регулярное выражение, которое Вам понравилось и уже сколько проблем с отладкой. D_PavelБлин зачем вы все время слэши удваиваете? Так ведь их смысл теряется! ровно наоборот... представим, что нам надо выцепить комбинацию "\t" из строки... Только не символ табуляции, а именно 2 символа, что я написал. Как Вы напишите регулярку? "#\\t#"? а я напишу "#\\\\t#" и буду прав. Дело в том, что Ваш двойной бэкслеш будет заменён на один (ну как обычно при вводе строки один слэш экранируется другим)... А потом в саму регулярку уйдёт выражение "\t", то есть поиск символа табуляции... И это приведёт к долгому мозгованию что же не так. А представляется сложную регулярку с такой ошибкой? Потому, хоть в данном случае таких нюансов нету, однако я привык писать регулярки именно так, дабы в случае чего не искать часами мелкие ошибки. Вообще, учитывая что "\" это символ экранирования, его вообще неправильно ставить одинарный. Ведь получается что таким образом мы пытаемся экранировать следующий символ, а не просто ставим слэш. Просто php проверяя, что такой комбинации нету, оставляет слэш нетронутым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 11:04 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
Програмёрне знаю... может это говнокод, но в своё время я решал подобную задачу и делал это так: 1. вызываю preg_match_all для поиска всего, что менять не надо и запоминаю найденные значения 2. вызываю preg_replace и заменяю всё, что надо оставить без изменений, на некую комбинацию, которой заведомо нету в тексте (например "[$$]") 3. в получившейся строке делаю все требуемые замены 4. делаю explode получившейся строки по ставленному ранее разделителю ("[$$]"). 5. запускаю for по получившемуся массиву и начинаю сборку новой строки вставляя между уже собранной частью и новой значение из массива, полученного в первом пункте, с соответствующим индексом. на выходе получается нужное значение. Не думаю что это сильно оптимально... зато быстро и просто (по строке на каждый пункт + строчки 4 на последний, получается до десятка строк на всё). Как бонус на выходе уже имеем отобранные значения из списка (мало ли, если там какие-то действия аля сохранения файлов надо сделать исходя из значений в тех же [img][/img]) Можно обойтись одним вызовом регулярки. Я так сделал: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 12:21 |
|
||
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#18+
ПрограмёрПросто php проверяя, что такой комбинации нету, оставляет слэш нетронутым. А! Так вот в чем дело! Я думал так надо раз ПХП не выдает ошибку. Перл бы выдал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 12:25 |
|
||
|
|

start [/forum/topic.php?all=1&fid=23&tid=1463021]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
78ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
100ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 478ms |

| 0 / 0 |
