Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: RegExp
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
arava
316 / 119 / 62
Регистрация: 30.06.2014
Сообщений: 644
1

Вытянуть слово между символами

06.04.2018, 13:17. Просмотров 815. Ответов 3
Метки нет (Все метки)

Имеется такая задача :
1.с текста нужно получить слова которые находятся между цифрой "2" и двоеточием ":"
2.перед числом два возможен пробел, но его может и не быть
3.поиск только в текущей строке
4.перед числом два не может быть цифры (\D)
5.после цифры "2" может быть пробел или сколько угодно пробелов, но его может и не быть
6.перед символом ":" в конце шаблона может быть пробел или сколько угодно пробелов, но его может и не быть.

В общем виде пример текста такой :
"2018.04.04 16:22 name1 : Address 4
text text text text text text text text text text text text
text text text text text text text text text text text text
text text text text text text
600 на 25arava, текст и еще много текста
2 arava : text
2arava: text
2 arava : text"

Регулярка должна находить все три совпадения в конце примера. В первой строке
тоже есть похожее совпадение, 2 name1 : Address 4 , оно найтись не должно.

Регулярка которую я писал не совсем правильно отрабатывает, поправьте пожалуйста.
PHP
1
 preg_match_all('/\D*2\s*([a-zA-Z]+)*\s*:/si', $text, $m);
Заранее благодарен
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2018, 13:17
Ответы с готовыми решениями:

Как составить регулярку для поиска между двумя символами? Например, между { и }, между [ и ]
Здравствуйте. Как составить регулярку между двумя знаками. Например между {...

Вытянуть содержимое между тегов title
как с помощью регулярного выражение содержимое <title> </ title>, есть текст...

Выборка текста между 2 символами
У меня есть 2 любых символа, например '<' и '>'. И есть например строка: '<...

Выделить текст между символами
Есть строка вида blalbalbal t=НУЖНЫЕ_МНЕ_ДАННЫЕ" class="test class" blablabal...

Поиск и замена слова между пробелами и символами
Здрасьте! Как мне найти в тексте вхождение подстроки и заменить не часть этого...

3
Emilien
530 / 425 / 249
Регистрация: 07.11.2015
Сообщений: 701
06.04.2018, 15:32 2
Лучший ответ Сообщение было отмечено arava как решение

Решение

PHP
1
preg_match_all('/(?<!\d)2(?!\d) *(.+?) *:/', $text, $m);
1
arava
316 / 119 / 62
Регистрация: 30.06.2014
Сообщений: 644
06.04.2018, 16:43  [ТС] 3
Emilien, работает, благодарен. Пожалуйста, опишите как читается ваша регулярка
0
Jewbacabra
Эксперт PHP
3571 / 2965 / 1319
Регистрация: 24.04.2014
Сообщений: 9,010
07.04.2018, 00:21 4
Цитата Сообщение от arava Посмотреть сообщение
опишите как читается ваша регулярка
https://regex101.com/r/jvnOI9/1
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2018, 00:21

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

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru