<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Maniac Programmer's Blog &#187; RegEx</title>
	<atom:link href="http://2lx.ru/category/programming/regular-expressions-programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://2lx.ru</link>
	<description>Блог помешанного программиста</description>
	<lastBuildDate>Wed, 08 Feb 2012 16:44:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Извлечение имени файла из URL</title>
		<link>http://2lx.ru/2011/03/izvlechenie-imeni-fajla-iz-url/</link>
		<comments>http://2lx.ru/2011/03/izvlechenie-imeni-fajla-iz-url/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 14:43:14 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[RegEx]]></category>
		<category><![CDATA[регулярные выражения]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=569</guid>
		<description><![CDATA[Регулярное выражения для извлечения имени файла из его URL-адреса:

m/^.*\/(.*?)$/
Пример использования:
#!/usr/bin/perl
my $a = &#34;http://cs11220.vkontakte.ru/u111111/a_xxxxxx.jpg&#34;;
my ($str) = $a =~ m/^.*\/(.*?)$/;
print $str;
]]></description>
		<wfw:commentRss>http://2lx.ru/2011/03/izvlechenie-imeni-fajla-iz-url/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Получаем адреса картинок на странице</title>
		<link>http://2lx.ru/2010/03/poluchaem-adresa-kartinok-na-stranice/</link>
		<comments>http://2lx.ru/2010/03/poluchaem-adresa-kartinok-na-stranice/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 16:10:54 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[RegEx]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[регулярные выражения]]></category>
		<category><![CDATA[ссылки]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=493</guid>
		<description><![CDATA[Регулярное выражение для поучения URL-адресов картинок в HTML-документе:
\&#60; *[img][^\&#62;]*[src] *= *[\"\']{0,1}([^\"\'\ &#62;]*)
]]></description>
		<wfw:commentRss>http://2lx.ru/2010/03/poluchaem-adresa-kartinok-na-stranice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Делаем email-адреса активными</title>
		<link>http://2lx.ru/2010/02/delaem-email-adresa-aktivnymi/</link>
		<comments>http://2lx.ru/2010/02/delaem-email-adresa-aktivnymi/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 11:29:11 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[RegEx]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[регулярные выражения]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=459</guid>
		<description><![CDATA[Регулярное выражение, которое делает из email-адресов активные ссылки.

На PHP:
function makeClickableEmails($text) {
 return eregi_replace(&#039;([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})&#039;,
 &#039;&#60;a href=&#34;mailto:\\1&#34;&#62;\\1&#60;/a&#62;&#039;, $text);
}
На Perl:
$text =~ s/([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})/&#60;a href=&#34;mailto:\1&#34;&#62;\1&#60;\/a&#62;/ig;
На C#:
static string MakeClickableEmails(string str)
{
	string patternFrom = @&#34;([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})&#34;;
	string patternTo = @&#34;&#60;a href=&#039;mailto:$1&#039;&#62;$1&#60;/a&#62;&#34;;
	return Regex.Replace(str, patternFrom, patternTo);
}
]]></description>
		<wfw:commentRss>http://2lx.ru/2010/02/delaem-email-adresa-aktivnymi/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Замена УРЛов как Вконтакте</title>
		<link>http://2lx.ru/2009/12/zamena-urlov-kak-vkontakte/</link>
		<comments>http://2lx.ru/2009/12/zamena-urlov-kak-vkontakte/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 17:41:24 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[RegEx]]></category>
		<category><![CDATA[регулярные выражения]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=417</guid>
		<description><![CDATA[Небольшой регекс, который делает из ссылок вида http://2lx.ru/2009/08/super-kapcha/ активные ссылки вроде такой: 2lx.ru.
preg_replace("/http:\/\/([^\/]+)[^\s]*/", "&#60;a href='$0'&#62;$1&#60;/a&#62;", $text);
]]></description>
		<wfw:commentRss>http://2lx.ru/2009/12/zamena-urlov-kak-vkontakte/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Разбор URLа</title>
		<link>http://2lx.ru/2009/08/parse-url/</link>
		<comments>http://2lx.ru/2009/08/parse-url/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 14:06:09 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[RegEx]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[регулярные выражения]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=377</guid>
		<description><![CDATA[Регекс для разбора URLа на составляющие.
^(.*.\:\/\/?)(.*?)\/(.*?)$
Результат:

Protocol:	http://
Domain:	site.ru
File:	dir/file.php?param=somedata

Скачать пример
]]></description>
		<wfw:commentRss>http://2lx.ru/2009/08/parse-url/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Регулярные выражения и Unicode-символы</title>
		<link>http://2lx.ru/2009/07/regulyarnye-vyrazheniya-i-unicode-simvoly/</link>
		<comments>http://2lx.ru/2009/07/regulyarnye-vyrazheniya-i-unicode-simvoly/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 14:35:29 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[RegEx]]></category>
		<category><![CDATA[регулярные выражения]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=362</guid>
		<description><![CDATA[
Некоторое время назад возникла необходимость сделать скрипт, который будет удалять из текста в utf8 некоторые специальные Unicode-символы:
$_ =~ s/[\«\»]//g;
Вроде все нормально, выражение должно отрабатываться нормально. Однако...
Работать-то оно работает, но после его применения к тексту многие кирилличиские символы заменяются знаками вопроса (ну не могут регуярные выражения хорошо работать с русским юникодом ...]]></description>
		<wfw:commentRss>http://2lx.ru/2009/07/regulyarnye-vyrazheniya-i-unicode-simvoly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Разбор адреса файла</title>
		<link>http://2lx.ru/2009/06/razbor-adresa-fajla/</link>
		<comments>http://2lx.ru/2009/06/razbor-adresa-fajla/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 06:43:41 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[RegEx]]></category>
		<category><![CDATA[регулярные выражения]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=334</guid>
		<description><![CDATA[Два небольших регулярных выражения для извлечения диска, пути и имени файла из windows-адреса файла и пути и имени файла из unix-адреса.
Собственно вот они:

([A-Za-z]\:\\)([^/]+[\\])(\w+\.\w+$)&#160;&#8212; Windows


(^/.*./)(\w+\.\w+$)&#160;&#8212; unix

В C# можно их использовать следующим образом:
string path = @"C:\Windows\notepad.exe";
MatchCollection matches = Regex.Matches(path, @"([A-Za-z]\:\\)([^/]+[\\])(\w+\.\w+$)", RegexOptions.IgnoreCase);
Console.WriteLine("Диск: {0}", matches[0].Groups[1].Value);
Console.WriteLine("Путь: {0}", matches[0].Groups[2].Value);
Console.WriteLine("Имя файла: {0}", matches[0].Groups[3].Value);
path = @"/etc/X11/xorg.conf";
matches = Regex.Matches(path, ...]]></description>
		<wfw:commentRss>http://2lx.ru/2009/06/razbor-adresa-fajla/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Полезные ссылки по регулярным выражениям</title>
		<link>http://2lx.ru/2009/04/poleznye-ssylki-po-regulyarnym-vyrazheniyam/</link>
		<comments>http://2lx.ru/2009/04/poleznye-ssylki-po-regulyarnym-vyrazheniyam/#comments</comments>
		<pubDate>Sun, 12 Apr 2009 10:36:01 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[RegEx]]></category>
		<category><![CDATA[регулярные выражения]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=304</guid>
		<description><![CDATA[
Регэксп (он же RegExp, он же RegEx, он же Регулярка) — программистская аббревиатура на термин «Regular Expression», что означает «Регулярное выражение». Сей термин восходит корнями к дискретной математике и означает он некоторую систему синтаксического анализа текста для выделения из него составных частей. На практике представляет собой выносящую мозг абракадабру, чуть ...]]></description>
		<wfw:commentRss>http://2lx.ru/2009/04/poleznye-ssylki-po-regulyarnym-vyrazheniyam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Проверка правильности ввода email-адреса</title>
		<link>http://2lx.ru/2009/04/proverka-pravilnosti-vvoda-email-adresa/</link>
		<comments>http://2lx.ru/2009/04/proverka-pravilnosti-vvoda-email-adresa/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 05:28:06 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[RegEx]]></category>
		<category><![CDATA[регулярные выражения]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=290</guid>
		<description><![CDATA[Небольшая функция на C#, проверяющая правильность введенного email-адреса.
Для проверки используются регулярные выражения, об использовании которых в C# я уже писал.

public static bool isValid(string email)
{
 string pattern = &#34;[.\\-_a-z0-9]+@([a-z0-9][\\-a-z0-9]+\\.)+[a-z]{2,6}&#34;;
 Match isMatch = Regex.Match(email, pattern, RegexOptions.IgnoreCase);
 return isMatch.Success;
}
Скачать пример
]]></description>
		<wfw:commentRss>http://2lx.ru/2009/04/proverka-pravilnosti-vvoda-email-adresa/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Извращенные URLы</title>
		<link>http://2lx.ru/2009/04/izvrashhennye-urly/</link>
		<comments>http://2lx.ru/2009/04/izvrashhennye-urly/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 17:01:19 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[RegEx]]></category>
		<category><![CDATA[регулярные выражения]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=288</guid>
		<description><![CDATA[Как-то раз в ходе разработки парсера одного сервиса столкнулся с довольно извращенной задачей обработки URL&#39;ов на странице.
Итак, имеется некоторая переменная, содержащая ряд URL-адресов вида
$urls = "
http://site.ru/?url=http://othersite1.ru/some_page.htm
http://site.ru/?url=http://othersite2.ru/some_page.htm
http://site.ru/?url=http://othersite3.ru/some_page.htm
";
Программа-максимум:
1. Заменить у URLов, содержащих текст othersite1.ru или othersite2.ru http://site.ru/?url= на goto.php?
2. У URLов, не подошедших под первое условие оставить только то, что идет после ...]]></description>
		<wfw:commentRss>http://2lx.ru/2009/04/izvrashhennye-urly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

