Маленький скрипт который поможет мутить регулярные выражения

Статус
В этой теме нельзя размещать новые ответы.

bumer3

Постоялец
Регистрация
10 Янв 2008
Сообщения
291
Реакции
155
Часто приходиться делать регулярные выражения именно большие, поэтому решил написать небольшой скриптик, может он работает не сильно отлично но надеюсь комуто сможет помочь


А теперь как пользоваться
PHP:
$text = <<<REGEXP
текст для обработки
REGEXP;
print bumer3_regexp($text, 'visual');
там где текст для обработки можно вставить любой код и следующие обозначения
{...} - выбрать какойто элемент
[...] - просто присутствует

поддерживаеться конструкции
anyt любой текст
numb цифра
nonm все кроме цифры
spac пробел
text текст без пробела
word символ образующий слово
nowo символ не образующий слово
tabb симаол табуляции
fend конец файла
lend переход на другую строку

[anyt] - любое количество символов текста
[anyt-6] - 6 символов текста и.т.д.

Может комуто пригодиться, а может ктото усовршенствует так как на этом возможности регулярных выражений не заканчиваються
 
Скрипт интересный. Только из описания непонятно, как им пользоваться. Хорошо было бы привести, пару примеров текста для парсинга с вставками {...} и [...] Ну и с сответствующими модами в обращении к функции. Работает ли он с карманами (some code)?
 
Пример:
Парсим со страниц нулледа:
HTML:
<td class="alt2" nowrap="nowrap">
	<div class="smallfont">
		<strong>Добро пожаловать, <a href="member.php?u=49158">bumer3</a>.</strong><br />
		Ваш последний визит: 31.12.2008 в <span class="time">22:32</span>

		
			<div><a href="private.php">Личные сообщения</a>: Новых 0, всего 11.</div>
		

		
	</div>

Вовод скрипту:
Код:
<td class="alt2" nowrap="[text]">[spac]<div class="smallfont">[spac]<strong>Добро пожаловать, <a href="member.php?u={numb}">{anyt}</a>.</strong><br />[spac]Ваш последний визит: [text] в <span class="time">[text]</span>[spac]<div><a href="private.php">Личные сообщения</a>:[anyt]</div>[spac]</div>

Получаем из скрипта:
Код:
'#<td class="alt2" nowrap="[\S]*">[\s]*<div class="smallfont">[\s]*<strong>Добро пожаловать\, <a href="member\.php\?u=([\d]*)">(.*?)<\/a>\.<\/strong><br \/>[\s]*Ваш последний визит: [\S]* в <span class="time">[\S]*<\/span>[\s]*<div><a href="private\.php">Личные сообщения<\/a>:.*?<\/div>[\s]*<\/div>#i'
 
В принципе, это лишь мнемоника для регулярных конструкций. Все равно, нужно знать регулярные выражения. Хотя для совсем начинающих скрипт может облегчить вход в мир регулярных выражений. Из удобств отмечу автоматическую расстановку экранирования спецсимволов. Сам скрипт не тестировал, однако, навскидку должен работать как надо. Не нашел только конструкцию выбора (шило|мыло).
 
Когда делал не учитывал. Просто часто нужно делать граберы с дургих сайтов и растановка всех спецсимволов отнимала очень много времени, лично мне скрипт помагает.
 
Есть бесплатная программка Для просмотра ссылки Войди или Зарегистрируйся. C ее помощью очень удобно составлять регулярные выражения. В ней два окна: регулярное выражение и текст для его тестирования.

shot.png
 
RegexBuddy 3 - мне эта тулза больше нравиться.
 
Когда то писал маленькую прогу для этих целей, могу скинуть если кому интересно, только она дескоптная.
 
Тестирование регулярных выражений - плагин для Firefox

Regular Expressions Tester addons.mozilla.org/ru/firefox/addon/2077
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху