Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP: RegExp

Войти
Регистрация
Восстановить пароль
 
arava
104 / 103 / 39
Регистрация: 30.06.2014
Сообщений: 584
#1

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

06.04.2018, 13:17. Просмотров 153. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вытянуть слово между символами (PHP):

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

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

Выборка текста между 2 символами - PHP
У меня есть 2 любых символа, например '<' и '>'. И есть например строка: '< 111 < 222> <333 <444> 555> 666> <777> <888>' Мне нужна...

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

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

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

3
Emilien
496 / 400 / 201
Регистрация: 07.11.2015
Сообщений: 640
06.04.2018, 15:32 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
PHP
1
preg_match_all('/(?<!\d)2(?!\d) *(.+?) *:/', $text, $m);
1
arava
104 / 103 / 39
Регистрация: 30.06.2014
Сообщений: 584
06.04.2018, 16:43  [ТС] #3
Emilien, работает, благодарен. Пожалуйста, опишите как читается ваша регулярка
0
Jewbacabra
Эксперт PHP
3021 / 2608 / 970
Регистрация: 24.04.2014
Сообщений: 7,976
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
Привет! Вот еще темы с ответами:

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

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

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

Проверить, находится ли слово между двумя другими - PHP
Нужно проверить, находится ли слово между двумя другими, т.е. например есть массив слов array('test','test2', 'hello'); Есть строка...


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

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

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