<?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[boost::regex reagiert anders unter Linux und Windows?]]></title><description><![CDATA[<p>Ich habe folgenden Code, der unter Linux richtig matched, unter Windows aber nicht:</p>
<pre><code class="language-cpp">std::string str(&quot;(CONNECTION=(HOST=1.1.1.1)(PORT=1234))(BLA=(SERVICE=huhu)))&quot;);
boost::regex re(&quot;.*\\(HOST=(.*?)\\).*&quot;);
boost::cmatch matches;
bool found = boost::regex_match(str.c_str(), matches, re);
cout &lt;&lt; &quot;HOST: '&quot; &lt;&lt; matches[1]) &lt;&lt; &quot;'&quot; &lt;&lt; endl;
</code></pre>
<p>Unter Linux bekomme ich folgende Ausgabe:</p>
<blockquote>
<p>HOST: '1.1.1.1'</p>
</blockquote>
<p>Unter Windows bekomme ich:</p>
<blockquote>
<p>HOST: '1.1.1.1)(PORT=1234))(BLA=(SERVICE=huhu)))'</p>
</blockquote>
<p>Wieso funktioniert das unter Windows nicht? Ich dachte Boost sei platform-unabhängig?</p>
<p>Jemand eine Idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/273480/boost-regex-reagiert-anders-unter-linux-und-windows</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 05:12:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/273480.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 08 Sep 2010 08:01:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to boost::regex reagiert anders unter Linux und Windows? on Wed, 08 Sep 2010 08:01:41 GMT]]></title><description><![CDATA[<p>Ich habe folgenden Code, der unter Linux richtig matched, unter Windows aber nicht:</p>
<pre><code class="language-cpp">std::string str(&quot;(CONNECTION=(HOST=1.1.1.1)(PORT=1234))(BLA=(SERVICE=huhu)))&quot;);
boost::regex re(&quot;.*\\(HOST=(.*?)\\).*&quot;);
boost::cmatch matches;
bool found = boost::regex_match(str.c_str(), matches, re);
cout &lt;&lt; &quot;HOST: '&quot; &lt;&lt; matches[1]) &lt;&lt; &quot;'&quot; &lt;&lt; endl;
</code></pre>
<p>Unter Linux bekomme ich folgende Ausgabe:</p>
<blockquote>
<p>HOST: '1.1.1.1'</p>
</blockquote>
<p>Unter Windows bekomme ich:</p>
<blockquote>
<p>HOST: '1.1.1.1)(PORT=1234))(BLA=(SERVICE=huhu)))'</p>
</blockquote>
<p>Wieso funktioniert das unter Windows nicht? Ich dachte Boost sei platform-unabhängig?</p>
<p>Jemand eine Idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1949547</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1949547</guid><dc:creator><![CDATA[TheGrudge]]></dc:creator><pubDate>Wed, 08 Sep 2010 08:01:41 GMT</pubDate></item><item><title><![CDATA[Reply to boost::regex reagiert anders unter Linux und Windows? on Wed, 08 Sep 2010 09:38:06 GMT]]></title><description><![CDATA[<p>Nachdem ich die fehlende Klammer und die zwei fehlenden std:: ersetzt habe, bekomme ich</p>
<pre><code>HOST: '1.1.1.1'
</code></pre>
<p>Boost Version 1.39, Windows.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1949588</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1949588</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 08 Sep 2010 09:38:06 GMT</pubDate></item><item><title><![CDATA[Reply to boost::regex reagiert anders unter Linux und Windows? on Wed, 08 Sep 2010 11:15:21 GMT]]></title><description><![CDATA[<p>Welche fehlende Klammer?<br />
In der RegExp?</p>
<p>Wieso ist es denn wichtig, std:: zu setzen, wenn ich doch &quot;using namespace std;&quot; habe? Naja ich werde mal schauen, ob das bei mir was ändert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1949626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1949626</guid><dc:creator><![CDATA[TheGrudge]]></dc:creator><pubDate>Wed, 08 Sep 2010 11:15:21 GMT</pubDate></item><item><title><![CDATA[Reply to boost::regex reagiert anders unter Linux und Windows? on Wed, 08 Sep 2010 11:38:53 GMT]]></title><description><![CDATA[<p>TheGrudge schrieb:</p>
<blockquote>
<p>Welche fehlende Klammer?<br />
In der RegExp?</p>
</blockquote>
<p>Nein, die da:</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;HOST: '&quot; &lt;&lt; matches[1]) &lt;&lt; &quot;'&quot; &lt;&lt; endl;
//                  ^
</code></pre>
<blockquote>
<p>Wieso ist es denn wichtig, std:: zu setzen, wenn ich doch &quot;using namespace std;&quot; habe? Naja ich werde mal schauen, ob das bei mir was ändert.</p>
</blockquote>
<p>Wo? In deinem Code vielleicht. In dem Code den du nicht gepostet hast.<br />
In dem fehlt vermutlich auch die Klammer nicht.<br />
Wer weiss was da noch alles anders ist, vielleicht ca. 100 Dinge, die dann der Grund dafür sind warum es unter Windows nicht funktioniert...</p>
<p>*grummel*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1949638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1949638</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 08 Sep 2010 11:38:53 GMT</pubDate></item><item><title><![CDATA[Reply to boost::regex reagiert anders unter Linux und Windows? on Wed, 08 Sep 2010 13:14:32 GMT]]></title><description><![CDATA[<p>Ich kenne mich mit boost::regex nicht aus, aber meines Erachtens ist in der RegExp doch eine Klammer zu viel, oder?</p>
<p><strong>(<strong>CONNECTION=(HOST=1.1.1.1)(PORT=1234)</strong>)(<strong>BLA=(SERVICE=huhu)</strong>)</strong>)</p>
<p>Edit:<br />
Ok, ich lass es Mal stehen, aber das erklärt natürlich nicht, wieso der bei der zweiten Ausgabe den ganzen Rest nimmt. Logisch wäre ja, dass der die letzte ) nicht mit einschließt, wenn er greedy ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1949693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1949693</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Wed, 08 Sep 2010 13:14:32 GMT</pubDate></item><item><title><![CDATA[Reply to boost::regex reagiert anders unter Linux und Windows? on Wed, 08 Sep 2010 15:04:40 GMT]]></title><description><![CDATA[<p>Eisflamme schrieb:</p>
<blockquote>
<p>Ich kenne mich mit boost::regex nicht aus, aber meines Erachtens ist in der RegExp doch eine Klammer zu viel, oder?</p>
<p><strong>(<strong>CONNECTION=(HOST=1.1.1.1)(PORT=1234)</strong>)(<strong>BLA=(SERVICE=huhu)</strong>)</strong>)</p>
</blockquote>
<p>Das ist ja nicht die Regex, das ist der Subject-String. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Die Regex ist (C++ Escaping entfernt)</p>
<pre><code>.*\(HOST=(.*?)\).*
</code></pre>
<p>und die sieht für mich richtig aus.</p>
<p>Und wie ich schon geschrieben habe kommt bei mir auch das richtige raus. Habs natürlich nur mit einer (noch dazu relativ alten) Boost version probiert...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1949753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1949753</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 08 Sep 2010 15:04:40 GMT</pubDate></item><item><title><![CDATA[Reply to boost::regex reagiert anders unter Linux und Windows? on Wed, 08 Sep 2010 15:39:05 GMT]]></title><description><![CDATA[<p>Hmm aus irgendeinem Grund waren die Strings in UTF-16 codiert, dadurch kam es zu Fehlern beim Einlesen.</p>
<p>Jetzt wo alles UTF-8 ist, funktioniert es wieder.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1949787</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1949787</guid><dc:creator><![CDATA[TheGrudge]]></dc:creator><pubDate>Wed, 08 Sep 2010 15:39:05 GMT</pubDate></item></channel></rss>