<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; JS/JScript: RegExp Разбиение строки на фрагменты заданной длины]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=8103</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8103&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «JS/JScript: RegExp Разбиение строки на фрагменты заданной длины».]]></description>
		<lastBuildDate>Sun, 24 Feb 2013 21:25:27 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: JS/JScript: RegExp Разбиение строки на фрагменты заданной длины]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=69758#p69758</link>
			<description><![CDATA[<p>Да. Можно записать короче, но я исходил из постановки задачи - &quot;вначале одно, потом другое, ну и напоследок все остальное&quot;. Короткий вариант решает другую задачу - &quot;хоть что-нибудь из списка возможных&quot;.</p>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Sun, 24 Feb 2013 21:25:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=69758#p69758</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS/JScript: RegExp Разбиение строки на фрагменты заданной длины]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=69757#p69757</link>
			<description><![CDATA[<p><strong>Rumata</strong>, да. Первый вариант работает идеально, а второй можно записать ещё короче:<br />/.{1,10}(([.?!;,\s]\s*)|$)/g<br />я с такого начал, потом получил то, что в первом посте. Так напугался перечислений в квадратных скобках, что вообще от них отказался...</p><div class="quotebox"><blockquote><p>как люди будут искать в этой куче?</p></blockquote></div><p>так же, как сейчас ищут по всему форуму (не люблю гугель, но в данном случае он рулит). Искать, точно зная ветку, не сложнее, чем неизвестную ветку, возможно, с малоинформативным названием.</p><div class="quotebox"><blockquote><p>А как мы будем ссылаться на готовые решения</p></blockquote></div><p>на <a href="http://forum.script-coding.com/viewtopic.php?pid=69756#p69756">отдельный пост</a> можно.</p>]]></description>
			<author><![CDATA[null@example.com (Serge Yolkin)]]></author>
			<pubDate>Sun, 24 Feb 2013 20:47:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=69757#p69757</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS/JScript: RegExp Разбиение строки на фрагменты заданной длины]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=69756#p69756</link>
			<description><![CDATA[<p>Я против кучи. А потом как люди будут искать в этой куче? А как мы будем ссылаться на готовые решения? </p><div class="quotebox"><blockquote><p>мысль из поста #4 работает некорректно</p></blockquote></div><p>Это имеете в виду? </p><p>Пример<br /></p><div class="codebox"><pre><code>

var re1 = /.{1,10}[.?!]\s*|.{1,10}[;,]\s*|.{1,10}(\s+|$)/g;

var re2 = /.{1,10}([.?!]\s*|[;,]\s*|\s+|$)/g;

var s = &#039;123 456 78. 90. 1234 56 78. 90.&#039;;

WScript.Echo(re1);
WScript.Echo(s.match(re1).join(&#039;\n&#039;));

WScript.Echo(re2);
WScript.Echo(s.match(re2).join(&#039;\n&#039;));
</code></pre></div><p>Результат:<br /></p><div class="quotebox"><blockquote><p>Первый режет по концам предложений<br />/.{1,10}[.?!]\s*|.{1,10}[;,]\s*|.{1,10}(\s+|$)/g<br />123 456 78.<br />90.<br />1234 56 78.<br />90.</p><p>Второй режет по любому разделителю, ближайшему к границе (10 символов в примере)<br />/.{1,10}([.?!]\s*|[;,]\s*|\s+|$)/g<br />123 456 78.<br />90. 1234<br />56 78. 90.</p></blockquote></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Sun, 24 Feb 2013 19:08:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=69756#p69756</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS/JScript: RegExp Разбиение строки на фрагменты заданной длины]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=69754#p69754</link>
			<description><![CDATA[<p>Опа! А вот мысль из поста #4 работает некорректно, примерно так же, как [.?!;,]. Т.е. используется последний (перед 650-го символа) разделитель. Без приоритетов.</p><p>Что касается переименования, я имел ввиду свалить все такие темы в одну и, в дальнейшем, использовать её для подобных запросов.</p>]]></description>
			<author><![CDATA[null@example.com (Serge Yolkin)]]></author>
			<pubDate>Sun, 24 Feb 2013 18:38:44 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=69754#p69754</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS/JScript: RegExp Разбиение строки на фрагменты заданной длины]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=69751#p69751</link>
			<description><![CDATA[<p>Вот еще (мысль пришла гораздо позже):<br /></p><div class="codebox"><pre><code>/.{1,650}([.?!]\s*|[;,]\s*|\s+|$)/g</code></pre></div><p>Я думаю, что &quot;JS/JScript: Разбиение строки на фрагменты заданной длины&quot; приемлемое название. Хотя могут быть и другие подходящие варианты. Авторов тех тем вряд ли призовешь к переименованию. Возможно модераторы дали бы им другие заголовки.</p>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Sun, 24 Feb 2013 16:10:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=69751#p69751</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS/JScript: RegExp Разбиение строки на фрагменты заданной длины]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=69750#p69750</link>
			<description><![CDATA[<p>Ну вот... Когда подсказали, всегда кажется: мог бы и сам догадаться...<br /><strong>Rumata</strong>, в очередной раз спасибо!</p><p>По поводу плохой практики: может, создать отдельную тему &quot;JS/VBS: Помогите написать правильное регулярное выражение&quot; и перенести в неё соответствующие темы (эту и приведённые в первом посте, может, и ещё есть)?</p>]]></description>
			<author><![CDATA[null@example.com (Serge Yolkin)]]></author>
			<pubDate>Sun, 24 Feb 2013 15:41:14 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=69750#p69750</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS/JScript: RegExp Разбиение строки на фрагменты заданной длины]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=69749#p69749</link>
			<description><![CDATA[<p>Плохая практика давать темам обобщающие названия. </p><p><strong>Serge Yolkin</strong>, попробуйте так:<br /></p><div class="codebox"><pre><code>/.{1,650}[.?!]\s*|.{1,650}[;,]\s*|.{1,650}(\s+|$)/g</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Sun, 24 Feb 2013 14:23:44 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=69749#p69749</guid>
		</item>
		<item>
			<title><![CDATA[JS/JScript: RegExp Разбиение строки на фрагменты заданной длины]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=69744#p69744</link>
			<description><![CDATA[<p>Не уверен, стоило ли создавать новую тему, есть <a href="http://forum.script-coding.com/viewtopic.php?id=5811">JScript: регулярные выражения</a>, <a href="http://forum.script-coding.com/viewtopic.php?id=7017">JavaScript: Регулярное выражение</a> и <a href="http://forum.script-coding.com/viewtopic.php?id=7947">JScript регулярное выражение!</a>, но, поскольку в них обсуждалось по одному вопросу, создал ещё одну такую же...</p><p>Собственно, вопрос: можно ли упростить/ сократить/ оптимизировать следующее выражение:</p><div class="codebox"><pre><code>/.{1,650}\.\s*|.{1,650}\?\s*|.{1,650}\!\s*|.{1,650}\;\s*|.{1,650}\,\s*|.{1,650}\s+|.{1,650}$/</code></pre></div><p>?<br />Чтобы было понятно, следующий код пытается разбить входной текст (без переводов строки) на фрагменты не более 650 символов, причём, сначала - по предложениям (. ? !), потом по &quot;;&quot; и &quot;,&quot;, и только потом, если не получилось, по прбелам (ну, или до конца):</p><div class="codebox"><pre><code>var outputArr=inputText.match(/.{1,650}\.\s*|.{1,650}\?\s*|.{1,650}\!\s*|.{1,650}\;\s*|.{1,650}\,\s*|.{1,650}\s+|.{1,650}$/g);</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Serge Yolkin)]]></author>
			<pubDate>Sun, 24 Feb 2013 11:35:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=69744#p69744</guid>
		</item>
	</channel>
</rss>
