<?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 Problem]]></title><description><![CDATA[<p>Hi,<br />
Ich verzweifel grad mit Boost.Regex:<br />
eigentlich wollte ich nur auf Anfrage eines Freundes dieses PHP skript</p>
<pre><code class="language-php">$str = file_get_contents('any_file.html');

	$ip_count = preg_match_all('/[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/', $str, $ips);

	print_r($ips);
</code></pre>
<p>in ein C++ prog umschreiben -dachte das kann nicht so schwer sein, v.a. seit TR1 bzw. Boost.Regex einen C++ Regex standard eingeführt haben...<br />
Aber aus den tutorials werde ich nicht ganz schlau.<br />
Ich will eigentlich nur eine HTML file nach dem vorkommen einer IPv4 durchsuchen und diese ausgeben.<br />
Aber boost hat wenn ich das richtig sehe keine möglichkeit eine list oder eonen vector o.ä. zurückzugeben, mit aleln results die passen</p>
<p>kann mir jemand helfen udn mir sagen, wie ich mit boost.Regex an die einzelnen substring, die auf nen pattern passen, komme?</p>
<p>Danke schonmal im Voraus ...</p>
<p>MfG<br />
Branleb</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/206195/boost-regex-problem</link><generator>RSS for Node</generator><lastBuildDate>Sat, 10 Oct 2026 05:05:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/206195.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 22 Feb 2008 00:24:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Boost.Regex Problem on Fri, 22 Feb 2008 00:24:10 GMT]]></title><description><![CDATA[<p>Hi,<br />
Ich verzweifel grad mit Boost.Regex:<br />
eigentlich wollte ich nur auf Anfrage eines Freundes dieses PHP skript</p>
<pre><code class="language-php">$str = file_get_contents('any_file.html');

	$ip_count = preg_match_all('/[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/', $str, $ips);

	print_r($ips);
</code></pre>
<p>in ein C++ prog umschreiben -dachte das kann nicht so schwer sein, v.a. seit TR1 bzw. Boost.Regex einen C++ Regex standard eingeführt haben...<br />
Aber aus den tutorials werde ich nicht ganz schlau.<br />
Ich will eigentlich nur eine HTML file nach dem vorkommen einer IPv4 durchsuchen und diese ausgeben.<br />
Aber boost hat wenn ich das richtig sehe keine möglichkeit eine list oder eonen vector o.ä. zurückzugeben, mit aleln results die passen</p>
<p>kann mir jemand helfen udn mir sagen, wie ich mit boost.Regex an die einzelnen substring, die auf nen pattern passen, komme?</p>
<p>Danke schonmal im Voraus ...</p>
<p>MfG<br />
Branleb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1460650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1460650</guid><dc:creator><![CDATA[branleb]]></dc:creator><pubDate>Fri, 22 Feb 2008 00:24:10 GMT</pubDate></item><item><title><![CDATA[Reply to Boost.Regex Problem on Fri, 22 Feb 2008 08:23:20 GMT]]></title><description><![CDATA[<p>mal schaun<br />
// zusammengestueckelt, muesste noch getestet werden</p>
<pre><code class="language-cpp">std::vector&lt;std::wstring&gt; Strings; // your strings with the sentences to search inside
std::vector&lt;std::wstring&gt; founded; // store the founded strings
std::wstring SearchFor = L&quot;[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}&quot;;

try {
    for(std::size_t i = 0; i &lt; Strings.size(); ++i) {
        boost::wregex expression(SearchFor);
        boost::match_results&lt;std::wstring::const_iterator&gt; cResult;
        if(boost::regex_search(Strings[i], cResult, expression))
            founded.push_back(Strings[i]);
    }
}
catch(boost::regex_error &amp;RegExex) {
    boost::regex_constants::error_type code = RegExex.code();
    std::ptrdiff_t position = RegExex.position();
    // output error &quot;code&quot; and &quot;position&quot; inside &quot;SearchFor&quot;
    return false;
}
catch(...) {
    // unknown error
}
</code></pre>
<p>// edit: gekapselt isses schoener</p>
<pre><code class="language-cpp">std::vector&lt;std::wstring&gt; Strings;
// fill &quot;Strings&quot;
std::vector&lt;std::wstring&gt; founded = GetRegExStrings(L&quot;[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}&quot;, Strings);

/*..*/

std::vector&lt;std::wstring&gt; GetRegExStrings(std::wstring exp, std::vector&lt;std::wstring&gt;&amp; originalstrings) {
    std::vector&lt;std::wstring&gt; founded;
    try {
        for(std::size_t i = 0; i &lt; originalstrings.size(); ++i) {
            boost::wregex expression(exp);
            boost::match_results&lt;std::wstring::const_iterator&gt; cResult;
            if(boost::regex_search(originalstrings[i], cResult, expression))
                founded.push_back(originalstrings[i]);
        }
    }
    catch(boost::regex_error &amp;RegExex) {
        boost::regex_constants::error_type code = RegExex.code();
        std::ptrdiff_t position = RegExex.position();
        // output error &quot;code&quot; and &quot;position&quot; inside &quot;exp&quot;
        return false;
    }
    catch(...) {
        // unknown error
    }
    return founded;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1460717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1460717</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Fri, 22 Feb 2008 08:23:20 GMT</pubDate></item><item><title><![CDATA[Reply to Boost.Regex Problem on Fri, 22 Feb 2008 09:48:19 GMT]]></title><description><![CDATA[<p>Ich hab dir hier ein Beispiel gemacht das Funktioniert. Die Regex aus deinem php Beispiel war aber falsch, ich hab sie darum angepasst. Der Punkt war nicht Maskiert und der Anfang und das Ende muss auch irgendwie definiert sein.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;iterator&gt;
#include &lt;fstream&gt;
#include &lt;boost/regex.hpp&gt;
using namespace std;

int main()
{
    // File öffnen
    ifstream in(&quot;any_file.html&quot;);
    if(!in){
        cerr &lt;&lt; &quot;File konnte nicht geöffnet werden\n&quot;;
        return -1;    
    }

    // File Inhalt in string kopieren
    in &gt;&gt; noskipws ;
    istream_iterator&lt;char&gt; in_begin(in), in_end;
    string str(in_begin, in_end);

    // File schliessen
    in.close();

    // String durchsuchen
    const boost::regex expression(&quot;[^.0-9]([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3})([^.0-9]|$)&quot;);
    string::const_iterator start = str.begin();
    string::const_iterator end   = str.end();
    boost::match_results&lt;std::string::const_iterator&gt; what; 
    while(regex_search(start, end, what, expression)){ 
      cout &lt;&lt; what[1] &lt;&lt; &quot;\n&quot;;
      // Neue start position setzen 
      start = what[0].second; 
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1460766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1460766</guid><dc:creator><![CDATA[Tanren]]></dc:creator><pubDate>Fri, 22 Feb 2008 09:48:19 GMT</pubDate></item><item><title><![CDATA[Reply to Boost.Regex Problem on Fri, 22 Feb 2008 10:00:34 GMT]]></title><description><![CDATA[<p>Ich weis zwar nicht, was du meinst mit Falsch bezüglich meines PHP-RegEx,<br />
aber trotzdem Danke für dein Beispiel, Tanren.<br />
Ich habe glaube ich jetzt verstanden, was ich bisher falsch gemacht habe...</p>
<p>Auch Danke Mr Evil für dein Beispiel ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1460778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1460778</guid><dc:creator><![CDATA[branleb]]></dc:creator><pubDate>Fri, 22 Feb 2008 10:00:34 GMT</pubDate></item><item><title><![CDATA[Reply to Boost.Regex Problem on Fri, 22 Feb 2008 10:09:47 GMT]]></title><description><![CDATA[<p>Falsch in dem Sinne das mit /[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/ zwar Ip Adressen gefunden werden, es werden aber auch etliche andere Sachen gefunden.<br />
z.B. eine einfache 7 Stellige Zahl würde auch gefunden werden oder ein Teil aus 12342.23.43.2321244 .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1460786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1460786</guid><dc:creator><![CDATA[Tanren]]></dc:creator><pubDate>Fri, 22 Feb 2008 10:09:47 GMT</pubDate></item></channel></rss>