<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[regex zusammensetzen]]></title><description><![CDATA[<p>Hi,</p>
<p>ich will zwei <code>std::regex</code> zusammensetzen, aber irgendwie finde ich in den Referenzen keine Funktion dafür?</p>
<pre><code>regex r1 ( &quot;[^&lt;]*&quot; );
regex r2 ( &quot;&lt;&quot; );
regex r3 = /* r1 + r2 */;
</code></pre>
<p>Wie könnte ich das realisieren.</p>
<p>Danke im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/322777/regex-zusammensetzen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Jul 2026 15:44:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/322777.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 06 Jan 2014 13:56:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to regex zusammensetzen on Mon, 06 Jan 2014 13:56:53 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich will zwei <code>std::regex</code> zusammensetzen, aber irgendwie finde ich in den Referenzen keine Funktion dafür?</p>
<pre><code>regex r1 ( &quot;[^&lt;]*&quot; );
regex r2 ( &quot;&lt;&quot; );
regex r3 = /* r1 + r2 */;
</code></pre>
<p>Wie könnte ich das realisieren.</p>
<p>Danke im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2375559</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375559</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Mon, 06 Jan 2014 13:56:53 GMT</pubDate></item><item><title><![CDATA[Reply to regex zusammensetzen on Mon, 06 Jan 2014 14:29:03 GMT]]></title><description><![CDATA[<p>Einfach die Strings zusammenaddieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2375568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375568</guid><dc:creator><![CDATA[hääääää]]></dc:creator><pubDate>Mon, 06 Jan 2014 14:29:03 GMT</pubDate></item><item><title><![CDATA[Reply to regex zusammensetzen on Mon, 06 Jan 2014 15:11:27 GMT]]></title><description><![CDATA[<p>hääääää schrieb:</p>
<blockquote>
<p>Einfach die Strings zusammenaddieren?</p>
</blockquote>
<p>Das will ich vermeiden, weil ich will, dass meine Funktionen <code>std::regex</code> zurückgeben. Ich will</p>
<pre><code>regex_search( get_regex() );
</code></pre>
<p>schreiben</p>
<p>und nicht</p>
<pre><code>regex_search( regex( get_regex() ) );
</code></pre>
<p>schreiben</p>
<p>Ich mach mal eben ein Beispiel: Ich will einen Link aus einen html-Dokument und manchmal auch den Linktext. Wenn ich den Linktext nicht brauche, will ich auch nicht nach ihm suchen. Darum hab ich zwei Funktionen.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Eine die nur nach einem Link sucht.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Eine die nach einem Link und dem dazugehörigen Text sucht.</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;regex&gt;
#include &lt;string&gt; 
using namespace std;

regex regex_for_links( const string&amp; link_pattern )
{
	const string pattern_start = &quot;&lt;\\s*A\\s+[^&gt;]*href\\s*=\\s*\&quot;(&quot;;
	const string pattern_end   = &quot;)\&quot;&quot;;
	const string pattern = pattern_start + link_pattern + pattern_end;

	return regex( pattern, regex::icase );
}

regex regex_for_links_and_texts( const string&amp; link_pattern, const string&amp; text_pattern )
{
	const string text_pattern_start = &quot;[^&gt;]*&gt;\\s*(&quot;;
	const string text_pattern_end   = &quot;)\\s*&lt;\\s*/A\\s*&gt;&quot;;
	const string pattern            = text_pattern_start + text_pattern + text_pattern_end;

	return /* regex_for_links(link_pattern) + regex(pattern, regex::icase) */; // Was mache ich hier nun am besten?
}

int main()
{
	string html( &quot;&lt;a href=\&quot;google.de\&quot;&gt; google &lt;/a&gt;&quot; );

	{ // NUR LINKS
		smatch m;
		regex_search( html, m, regex_for_links(&quot;[^\&quot;]*&quot;) );

		for(auto found : m)
			cout &lt;&lt; found &lt;&lt; '\n';
	}

	{ // LINKS + TEXTE
		smatch m;
		regex_search( html, m, regex_for_links_and_texts(&quot;[^\&quot;]*&quot;, &quot;[^\&quot;]*&quot;) );

		for(auto found : m)
			cout &lt;&lt; found &lt;&lt; '\n';
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2375594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375594</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Mon, 06 Jan 2014 15:11:27 GMT</pubDate></item><item><title><![CDATA[Reply to regex zusammensetzen on Mon, 06 Jan 2014 15:14:58 GMT]]></title><description><![CDATA[<p>Unten hab ich aus Versehen einen copy&amp;paste Fehler gemacht:</p>
<pre><code>regex_search( html, m, regex_for_links_and_texts(&quot;[^\&quot;]*&quot;, &quot;[^&lt;]*&quot;) );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2375595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375595</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Mon, 06 Jan 2014 15:14:58 GMT</pubDate></item><item><title><![CDATA[Reply to regex zusammensetzen on Mon, 06 Jan 2014 16:07:42 GMT]]></title><description><![CDATA[<p>Ich würde regex_search immer beides suchen lassen und dann aus smatch entweder nur den Link oder beides nehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2375620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375620</guid><dc:creator><![CDATA[regex]]></dc:creator><pubDate>Mon, 06 Jan 2014 16:07:42 GMT</pubDate></item></channel></rss>