Форум программистов, компьютерный форум, киберфорум
PHP: RegExp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/34: Рейтинг темы: голосов - 34, средняя оценка - 4.68
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 234

Пропустить все символы пока не встретится слово

01.03.2015, 11:07. Показов 6506. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день господа. Учусь регуляркам и пробую парсить html. Но вот возникла проблема, как мне пропускать слово целиком. Допустим имею html код:
HTML5
1
<div class="class">text<div>bla bla text</div><a href="url">link</a></div>
Ну в реальности все сложней, в общем не нужно выбрать допустим текст, потом пропустить всё пока не встречу первую href взять из неё url, потом допустим опять до какой-то условной фразы все пропустить. Возможно я туплю на ровном месте, но не пойму как это делается.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.03.2015, 11:07
Ответы с готовыми решениями:

В промежутке между символами с номерами от P1 до P2 удалить все символы, пока не встретится символ S2
Помогите с заданием, пожалуйста! Даны строка S1 и два числа P1 и P2 (P1 и P2 меньше длины строки). В промежутке между символами с...

С клавиатуры вводятся символы, пока не встретится точка
С клавиатуры вводятся символы, пока не встретится точка или количество введенных символов превысит 79. Вывести на печать общее количество...

Написать класс. Ввод строк с консоли пока не встретится слово end
Добрый вечер. Помогите пожалуйста с задачей. Написать класс, в котором как поле объявлен массив строк. Вводим количество строк с...

7
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
01.03.2015, 11:12
Austerus,
PHP
1
2
3
4
<?php
$s = '<div class="class">text<div>bla bla text</div><a href="url">link</a></div>';
preg_match("/<a href=\"([^\"]+)\">/", $s, $m);
echo $m[1];
результат
Code
1
url
0
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 234
01.03.2015, 11:25  [ТС]
не вот
PHP
1
([^\"]+
вот так я умею делать, а мне нужно именно пропустить все до href, т.е. если строка не будет соответствовать шаблону
HTML5
1
<div class="class">[\w]*<div>[\w]*</div><a href="url">link</a></div>
, то результатом это являться не будет.

Добавлено через 2 минуты
только там ещё всякие символы переноса же между тегами и прочее может быть вот я о чем, т.е. мне все равно что там? но мне нужно именно с этих блоков брать начиная с блока с классом "class" найти первую ссылку href
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
01.03.2015, 15:50
PHP
1
'~<div class="class">.*?<a.*?href="([^"]*?)"~is'
?
0
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 234
01.03.2015, 16:18  [ТС]
объясните пожалуйста значение ".*?" и "is", все работает, но я не совсем понимаю как.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
01.03.2015, 16:34
Лучший ответ Сообщение было отмечено Austerus как решение

Решение

. - любой символ (по умолчанию - за исключением символов перевода строки)
* - любое количество раз (0 и более)
? после звездочки - чтобы убрать жадность (что это такое, можете посмотреть на википедии)

Т.е., .*? - любой символ любое количество раз, не жадным поиском (не захватывая весь текст до конца)

i - ignoreCase, регистронезависимый поиск
s - для того, чтобы "." захватывало также и переводы строк.
1
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 234
01.03.2015, 17:02  [ТС]
Большое спасибо
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
01.03.2015, 17:12
Пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.03.2015, 17:12
Помогаю со студенческими работами здесь

Напишите программу, которая читает входные символы до тех пор, пока не встретится символ #
Здравствуйте помогите решить задачу. Напишите программу ,которая читает входные символы до тех пор,пока не встретиться символ...

С клавиатуры вводятся символы, пока не встретится знак "?"
Добрый день, подскажите, пожалуйста. Такая задача. Требуется - вводить символы до тех пор, пока не встретится знак &quot;?&quot; или...

Пропустить все напечатанные символы
Я scanf-ом считываю число, затем, если считанное число не из нужного диапазона, программа через некоторое время опять вызывает эту функцию....

Как пропустить все символы до конца строки?
Проблема в том,что я считываю командой fgets максимум 1000 символов (пишу мини шел), и если на вход подается строчка длиной больше 1000...

Считать в отдельную переменную все цифры идущие подряд после символа _ , пока не встретится символ не являющийся числом
на php Допустим дана строка: aeg28491_30481?353 как мне считать в отдельную переменную все цифры идущие подряд после символа _ , пока...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
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/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru