<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; [Python 2.6.6] Регулярные выражения]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=17486</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=17486&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «[Python 2.6.6] Регулярные выражения».]]></description>
		<lastBuildDate>Sat, 04 Feb 2012 21:41:53 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: [Python 2.6.6] Регулярные выражения]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=248465#p248465</link>
			<description><![CDATA[<div class="quotebox"><cite>Fat-Zer пишет:</cite><blockquote><p>регулярка жадная, она ищет самое длинное соответствие...</p></blockquote></div><p>А я считал, что должно останавливаться при первом совпадении..<br />Точно!</p><div class="quotebox"><blockquote><p>+? - соответствует минимальному числу повторений.</p></blockquote></div><p>Работает! <img src="https://linuxforum.ru/img/smilies/ag.gif" alt="ag" /></p>]]></description>
			<author><![CDATA[null@example.com (-=Serj=-)]]></author>
			<pubDate>Sat, 04 Feb 2012 21:41:53 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=248465#p248465</guid>
		</item>
		<item>
			<title><![CDATA[Re: [Python 2.6.6] Регулярные выражения]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=248461#p248461</link>
			<description><![CDATA[<p>регулярка жадная, она ищет самое длинное соответствие... <br />если питон поддерживает ленивые регулярки, то используйте <strong>(.+?)</strong> если нет, то <strong>([^&quot;]+)</strong> (или как-то так)</p>]]></description>
			<author><![CDATA[null@example.com (Fat-Zer)]]></author>
			<pubDate>Sat, 04 Feb 2012 21:29:43 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=248461#p248461</guid>
		</item>
		<item>
			<title><![CDATA[Re: [Python 2.6.6] Регулярные выражения]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=248460#p248460</link>
			<description><![CDATA[<p>Уже всю клавиатуру раскрошил, однако никак не пойму, почему проскакивает вторую кавычку? smile <br /></p><div class="codebox"><pre><code>print re.findall(r&#039;href=\&quot;(.+)\&quot;&#039;,&#039;&lt;link href=&quot;http://shop.home/image/data/cart.png&quot; rel=&quot;icon&quot; /&gt;&#039;)</code></pre></div><p><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">[&#039;http://shop.home/image/data/cart.png&quot; rel=&quot;icon&#039;]</div></p><br /><p>Python 2.7.2</p>]]></description>
			<author><![CDATA[null@example.com (-=Serj=-)]]></author>
			<pubDate>Sat, 04 Feb 2012 21:13:57 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=248460#p248460</guid>
		</item>
		<item>
			<title><![CDATA[Re: [Python 2.6.6] Регулярные выражения]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=221039#p221039</link>
			<description><![CDATA[<p>Благодарю, наконец-то заработало.<br /></p><div class="quotebox"><cite>durc пишет:</cite><blockquote><p>Но поскольку в начале знак вопроса,..</p></blockquote></div><p>Как я уже писал, знак вопроса нужен для идентификации строки (в данном случае, если первый символ - знак вопроса, то переходим в функцию добавления переменной). После входа в функцию от знака вопроса избавляемся:<br /></p><div class="codebox"><pre><code>com = com[1:]</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Osanve)]]></author>
			<pubDate>Thu, 27 Oct 2011 04:31:45 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=221039#p221039</guid>
		</item>
		<item>
			<title><![CDATA[Re: [Python 2.6.6] Регулярные выражения]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=221013#p221013</link>
			<description><![CDATA[<p>Примерно так<br /></p><div class="quotebox"><blockquote><p>&gt;&gt;&gt; com = com.decode(&#039;utf-8&#039;)<br />&gt;&gt;&gt; print com<br />?длина = 100<br />&gt;&gt;&gt; com<br />u&#039;?\u0434\u043b\u0438\u043d\u0430 = 100&#039;<br />&gt;&gt;&gt; import re<br />&gt;&gt;&gt; reg = ur&quot;[_0-9а-яА-Я]* *= *.+&quot;<br />&gt;&gt;&gt; reg = re.compile(reg, re.UNICODE)<br />&gt;&gt;&gt; m = reg.match(com)<br />&gt;&gt;&gt; m<br />&gt;&gt;&gt; print m<br />None<br />&gt;&gt;&gt; s = reg.search(com)<br />&gt;&gt;&gt; s<br />&lt;_sre.SRE_Match object at 0xa134560&gt;<br />&gt;&gt;&gt; print s<br />&lt;_sre.SRE_Match object at 0xa134560&gt;<br />&gt;&gt;&gt; print s.group()<br />длина = 100</p></blockquote></div><p>Напомню, match() - Определяет, <strong>начинается ли совпадение регулярного выражения с начала строки.</strong><br />Но поскольку в начале знак вопроса, то пользуйтесь<br />search() - Сканирует всю строку в поисках всех мест совпадений с регулярным выражением</p>]]></description>
			<author><![CDATA[null@example.com (durc)]]></author>
			<pubDate>Wed, 26 Oct 2011 20:45:33 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=221013#p221013</guid>
		</item>
		<item>
			<title><![CDATA[Re: [Python 2.6.6] Регулярные выражения]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=221007#p221007</link>
			<description><![CDATA[<p>Решил попробовать не в модуле, а в интерпретаторе.<br />Результат:<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">&gt;&gt;&gt; com = &quot;?длина = 100&quot;<br />&gt;&gt;&gt; print com<br />?длина = 100<br />&gt;&gt;&gt; com = com[1:]<br />&gt;&gt;&gt; print com<br />длина = 100<br />&gt;&gt;&gt; com = unicode(com)<br />Traceback (most recent call last):<br />&nbsp; File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;<br />UnicodeDecodeError: &#039;ascii&#039; codec can&#039;t decode byte 0xd0 in position 0: ordinal not in range(128)</div><br />То, что сначала задавал строку со знаком вопроса, а потом его убирал - приближение к коду модуля, т.к. знак вопроса служит для идентификации.</p>]]></description>
			<author><![CDATA[null@example.com (Osanve)]]></author>
			<pubDate>Wed, 26 Oct 2011 19:53:04 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=221007#p221007</guid>
		</item>
		<item>
			<title><![CDATA[Re: [Python 2.6.6] Регулярные выражения]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=221005#p221005</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>&gt;&gt;&gt; com = &#039;длина = 100&#039;<br />&gt;&gt;&gt; com = unicode(com)<br />&gt;&gt;&gt; m1 = reg.match(com)<br />&gt;&gt;&gt; print m1<br />&lt;_sre.SRE_Match object at 0xb735ecd0&gt;<br />&gt;&gt;&gt; m1.group()<br />1: u&#039;\u0434\u043b\u0438\u043d\u0430 = 100&#039;<br />&gt;&gt;&gt; print m1.group()<br />длина = 100</p></blockquote></div><p>Понятия не имею где у Вас грабли, проверьте ещё раз.</p>]]></description>
			<author><![CDATA[null@example.com (durc)]]></author>
			<pubDate>Wed, 26 Oct 2011 19:39:24 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=221005#p221005</guid>
		</item>
		<item>
			<title><![CDATA[Re: [Python 2.6.6] Регулярные выражения]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=221004#p221004</link>
			<description><![CDATA[<p>Прописал<br /></p><div class="codebox"><pre><code>com = unicode(com)</code></pre></div><p>из-за того, что требуется использовать в нескольких условиях. Результат тот же, только ошибка на этой строке.</p>]]></description>
			<author><![CDATA[null@example.com (Osanve)]]></author>
			<pubDate>Wed, 26 Oct 2011 19:35:03 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=221004#p221004</guid>
		</item>
		<item>
			<title><![CDATA[Re: [Python 2.6.6] Регулярные выражения]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=221001#p221001</link>
			<description><![CDATA[<p>Ну, например<br /></p><div class="quotebox"><blockquote><p>&gt;&gt;&gt; reg = ur&quot;[_0-9а-яА-Я]* *= *.+&quot;<br />&gt;&gt;&gt; reg = re.compile(reg)<br />&gt;&gt;&gt; m = reg.match(unicode(&#039;длина = 100&#039;))<br />&gt;&gt;&gt; print m<br />&lt;_sre.SRE_Match object at 0xb74cccd0&gt;<br />&gt;&gt;&gt; m.group()<br />1: u&#039;\u0434\u043b\u0438\u043d\u0430 = 100&#039;<br />&gt;&gt;&gt; print m.group()<br />длина = 100</p></blockquote></div>]]></description>
			<author><![CDATA[null@example.com (durc)]]></author>
			<pubDate>Wed, 26 Oct 2011 19:17:55 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=221001#p221001</guid>
		</item>
		<item>
			<title><![CDATA[Re: [Python 2.6.6] Регулярные выражения]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=220998#p220998</link>
			<description><![CDATA[<p><strong>durc</strong>, благодарю. Действительно, если задать строку в юникоде, то работает (почему-то думал, что при вводе с клавиатуры будет юникод).<br />Но теперь возникает вопрос: как строку (судя по всему в ascii, если верить вылезающей ошибке) перевести в юникод. В decode и encode постоянно путаюсь, но при decode никаких изменений нет, а при encode вылезает следующее:<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">Traceback (most recent call last):<br />&nbsp; File &quot;./main.py&quot;, line 46, in &lt;module&gt;<br />&nbsp; &nbsp; result = add_new_variable(command)<br />&nbsp; File &quot;./main.py&quot;, line 14, in add_new_variable<br />&nbsp; &nbsp; com.encode(&#039;utf-8&#039;)<br />UnicodeDecodeError: &#039;ascii&#039; codec can&#039;t decode byte 0xd0 in position 0: ordinal in range(128)</div></p>]]></description>
			<author><![CDATA[null@example.com (Osanve)]]></author>
			<pubDate>Wed, 26 Oct 2011 19:02:12 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=220998#p220998</guid>
		</item>
		<item>
			<title><![CDATA[Re: [Python 2.6.6] Регулярные выражения]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=220994#p220994</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>&gt;&gt;&gt; import re<br />&gt;&gt;&gt; reg = ur&quot;[_0-9а-яА-Я]* *= *.+&quot;<br />&gt;&gt;&gt; reg = re.compile(reg, re.UNICODE)<br />&gt;&gt;&gt; m = reg.match(u&#039;длина = 100&#039;)<br />&gt;&gt;&gt; print m<br />&lt;_sre.SRE_Match object at 0x98aa838&gt;<br />&gt;&gt;&gt; m.group()<br />0: u&#039;\u0434\u043b\u0438\u043d\u0430 = 100&#039;<br />&gt;&gt;&gt; print m.group()<br />длина = 100</p></blockquote></div><p>И в чём проблема?<br />match() - Определяет, начинается ли совпадение регулярного выражения с начала строки.<br />Если не было найдено ни одного совпадения, то match() возвращает <strong>None</strong>. Если поиск успешен, возвращается экземпляр <strong>MatchObject</strong>, содержащий информацию о совпадении: где оно начинается и заканчивается, подстрока соответствия, и так далее.<br />Для MatchObject также имеется несколько методов и атрибутов, наиболее важными из которых являются:<br /> - group() - Возвращает строку, сошедшуюся с регулярным выражением<br /> - start() &nbsp; &nbsp; Возвращает позицию начала совпадения<br /> - end() &nbsp; &nbsp; Возвращает позицию конца совпадения</p><p>Как то так. <a href="http://docs.python.org/library/re.html">Подробнее</a>.</p>]]></description>
			<author><![CDATA[null@example.com (durc)]]></author>
			<pubDate>Wed, 26 Oct 2011 18:41:31 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=220994#p220994</guid>
		</item>
		<item>
			<title><![CDATA[[Python 2.6.6] Регулярные выражения]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=220946#p220946</link>
			<description><![CDATA[<p>Здравствуйте!</p><p>Если я правильно помню регулярные выражения, то следующая строка означает:<br />1) Ноль или более цифр, подчеркиваний и кирилических букв<br />2) Далее ноль или более пробелов<br />3) Далее один знак равно<br />4) Далее ноль или более пробелов<br />5) Далее один или более любых символов<br /></p><div class="codebox"><pre><code>reg = ur&quot;[_0-9а-яА-Я]* *= *.+&quot;</code></pre></div><p>Но по какой-то причине строка, которая точно удовлетворяет данному условию не находится.<br />Сама строка:<br /></p><div class="quotebox"><blockquote><p>длина = 100</p></blockquote></div><p>Создаю объект следующим образом:<br /></p><div class="codebox"><pre><code>reg = re.compile(reg, re.UNICODE)</code></pre></div><p>Ищу вот так:<br /></p><div class="codebox"><pre><code>reg.match(com)</code></pre></div><p>где com - текущая строка.</p><p>Что я делаю не так?</p><p>Заранее спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (Osanve)]]></author>
			<pubDate>Wed, 26 Oct 2011 12:12:10 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=220946#p220946</guid>
		</item>
	</channel>
</rss>
