Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Регулярные выражения - как выбрать все куски текста кроме подстроки?
|
|||
|---|---|---|---|
|
#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?fid=23&gotonew=1&tid=1463021]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
11ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 257ms |
| total: | 393ms |

| 0 / 0 |
