С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP: RegExp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 4

Исключить теги и текст между специальными символами

03.12.2015, 01:31. Показов 1408. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!
Мне нужно выбрать и заменить все слова, исключая теги и слова, исключая текст между ![нулевой_символ] и [нулевой_символ]!
Не могу понять как сделать такое.

С тегами всё понятно:

PHP
1
$text = preg_replace_callback('/(['.iconv('utf-8', 'windows-1251', 'а-яА-Я').'a-zA-Z0-9]+)(?![^<]*?>)/', 'callback', $text);
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.12.2015, 01:31
Ответы с готовыми решениями:

Теги и текст между ними
Допустим, в текстовом документе есть теги &lt;post&gt; и &lt;/post&gt; между ними есть текст, в котором присутствуют символы перевода строки и прочее. ...

Выделить текст между символами
Есть строка вида blalbalbal t=НУЖНЫЕ_МНЕ_ДАННЫЕ&quot; class=&quot;test class&quot; blablabal Пробовал по-разному самое близкое, что получилось -...

Регулярные выражение. Получить текст, который находится между символами
Есть текст такого типа: {&quot;response&quot;:} как вывести следующие данные: 1 Павел Дуров...

6
 Аватар для GoDr
90 / 79 / 33
Регистрация: 17.08.2015
Сообщений: 512
Записей в блоге: 1
03.12.2015, 09:01
rootaccess, покажи пример текста и что должно в итоге получится.
0
0 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 4
03.12.2015, 11:51  [ТС]
Пример:
PHP
1
$text = '<body> this <span>is</span> '.'!'.chr(0).'a1'.chr(0).'!'.' test </body>';
Регулярное выражение должно выбрать:

HTML5
1
2
3
[1] this
[2] is
[3] test
0
1137 / 685 / 412
Регистрация: 07.11.2015
Сообщений: 1,102
03.12.2015, 17:21
Если только для латиницы
PHP
1
2
3
4
5
6
7
$text = '<body> this <span>is</span> '.'!'.chr(0).'a1'.chr(0).'!'.' test </body>';
 
$re = '~\G(?:<[^>]*>|!\x0.*?\x0!|\W)*+(\w+)~s';
 
preg_match_all($re, $text, $matches);
 
var_dump($matches[1]);
0
0 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 4
03.12.2015, 21:20  [ТС]
Emilien, Мне нужно делать preg_replace_callback и я об этом написал сразу. При твоей функции replace работает неверно, он заменяет всё, как будто не обращая внимание на ?:.
0
1137 / 685 / 412
Регистрация: 07.11.2015
Сообщений: 1,102
03.12.2015, 22:09
Дело не в ?:.
Нужный эффект обеспечит метасимвол \K. Для поддержки кирилицы заменить \w на [a-zA-Z0-9а-яА-Я], а \W на [^a-zA-Z0-9а-яА-Я].
PHP
1
2
3
4
5
$text = '<body> this <span>is</span> '.'!'.chr(0).'a1'.chr(0).'!'.' test </body>';
 
$re = '~\G(?:<[^>]*>|!\x0.*?\x0!|\W)*+\K(\w+)~s';
 
$text = preg_replace_callback($re, 'callback', $text);
1
0 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 4
03.12.2015, 22:31  [ТС]
Спасибо огромное!
Про \K вообще не знал, читал про работу с регулярными выражениями на Википедии.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.12.2015, 22:31
Помогаю со студенческими работами здесь

Нужно извлечь текст между определенными символами (в строке они встречаются несколько раз)
нужно из строки текста, содержащего и точки, и двоеточия (их может быть несколько), извлечь часть текста, находящуюся слева от самого...

Как составить регулярку для поиска между двумя символами? Например, между { и }, между [ и ]
Здравствуйте. Как составить регулярку между двумя знаками. Например между { и }, , {} и т д. Для { и } есть /\{(*+)}/. Если идти по...

Не могу разобраться со специальными символами в маткаде
как написать &quot;+- Пи/2&quot;

Исключить последовательность символов, заключенную между двумя определенными символами
.исключить последовательность символов заключенную между двумя определенными символами

Избавиться от замены специальными символами в относительнном uri
Использую так: var uri1 = new Uri(@&quot;C:\&quot;); var uri2 = new Uri(@&quot;C:\Program Files\Windows\&quot;); return...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru