<?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 benutzung]]></title><description><![CDATA[<p>hi,<br />
weiß einer wie man mit den boost-klassen reguläre ausdrücke benutzen kann?<br />
in der dokumentation steig ich nicht so richtig durch.<br />
ich habe eine funktion die prüfen soll ob in einem übergebenen string ein übergebenen regulären ausdruck an einer bestimmten stelle zutrifft und wenn das so ist, die ganzen stellen, die in dem regulären ausdruck in klammern gesetzt sind zurück geben.</p>
<pre><code class="language-cpp">vector&lt;string&gt; beginswith(string text, boost::regex e, pos) {
    /* trifft der ausdruck an der stelle pos von text zu
     * wenn ja, gib die gefundenen abschnitte in einer liste zurück
     */
}
</code></pre>
<p>wird die funktion zum beispiel mit text=&quot;trallala &lt;foo bar=bla&gt; foo&quot;, pos=9 und e=/&lt;foo&lsqb;&lsqb;:space:&rsqb;&rsqb;+(&lsqb;&lsqb;:alpha:&rsqb;&rsqb;+)=(&lsqb;&lsqb;:alpha:&rsqb;&rsqb;+)/ aufgerufen,<br />
sollte die funktion eine liste mit &quot;bar&quot; und &quot;bla&quot; zurückgeben.</p>
<p>Hab leider keine Ahnung wie ich mit z.B. regex_match oder _search dazu bewegen könnte mir so ein ergebnis zu liefern.</p>
<p>mfg, cypher</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/132768/boost-regex-benutzung</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 17:06:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/132768.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 12 Jan 2006 21:02:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to boost::regex benutzung on Thu, 12 Jan 2006 21:02:32 GMT]]></title><description><![CDATA[<p>hi,<br />
weiß einer wie man mit den boost-klassen reguläre ausdrücke benutzen kann?<br />
in der dokumentation steig ich nicht so richtig durch.<br />
ich habe eine funktion die prüfen soll ob in einem übergebenen string ein übergebenen regulären ausdruck an einer bestimmten stelle zutrifft und wenn das so ist, die ganzen stellen, die in dem regulären ausdruck in klammern gesetzt sind zurück geben.</p>
<pre><code class="language-cpp">vector&lt;string&gt; beginswith(string text, boost::regex e, pos) {
    /* trifft der ausdruck an der stelle pos von text zu
     * wenn ja, gib die gefundenen abschnitte in einer liste zurück
     */
}
</code></pre>
<p>wird die funktion zum beispiel mit text=&quot;trallala &lt;foo bar=bla&gt; foo&quot;, pos=9 und e=/&lt;foo&lsqb;&lsqb;:space:&rsqb;&rsqb;+(&lsqb;&lsqb;:alpha:&rsqb;&rsqb;+)=(&lsqb;&lsqb;:alpha:&rsqb;&rsqb;+)/ aufgerufen,<br />
sollte die funktion eine liste mit &quot;bar&quot; und &quot;bla&quot; zurückgeben.</p>
<p>Hab leider keine Ahnung wie ich mit z.B. regex_match oder _search dazu bewegen könnte mir so ein ergebnis zu liefern.</p>
<p>mfg, cypher</p>
]]></description><link>https://www.c-plusplus.net/forum/post/964995</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964995</guid><dc:creator><![CDATA[Cypher]]></dc:creator><pubDate>Thu, 12 Jan 2006 21:02:32 GMT</pubDate></item><item><title><![CDATA[Reply to boost::regex benutzung on Fri, 13 Jan 2006 09:04:40 GMT]]></title><description><![CDATA[<p>Da sind doch eh einige Examples dabei. Du musst dir ja eigentlich nur das rauskopieren, was du am ehesten brauchst, und verändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/965214</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/965214</guid><dc:creator><![CDATA[Ringding]]></dc:creator><pubDate>Fri, 13 Jan 2006 09:04:40 GMT</pubDate></item><item><title><![CDATA[Reply to boost::regex benutzung on Fri, 13 Jan 2006 21:27:44 GMT]]></title><description><![CDATA[<p>Hallo Cypher,</p>
<p>mit regex_search geht es etwa so:</p>
<pre><code class="language-cpp">#include &lt;boost/regex.hpp&gt;

#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;

std::vector&lt; std::string &gt; beginswith( const std::string&amp; text, const boost::regex&amp; e, std::string::size_type pos )
{
    std::vector&lt; std::string &gt; res( 2 );
    boost::match_results&lt; std::string::const_iterator &gt; what;
    if( boost::regex_search( text.begin() + pos, text.end(), what, e ) )
    {
        // what[0] enthält den gesamten Ausdruck 
        res[0] = what[1];   // 1. Gruppe  (&lsqb;&lsqb;:alpha:&rsqb;&rsqb;+)
        res[1] = what[2];   // 2. Gruppe                 (&lsqb;&lsqb;:alpha:&rsqb;&rsqb;+)
    }
    return res;
}

int main()
{
    std::vector&lt; std::string &gt; res = beginswith( 
        &quot;trallala &lt;foo bar=bla&gt; foo&quot;,
        boost::regex( &quot;&lt;foo&lsqb;&lsqb;:space:&rsqb;&rsqb;+(&lsqb;&lsqb;:alpha:&rsqb;&rsqb;+)=(&lsqb;&lsqb;:alpha:&rsqb;&rsqb;+)&quot; ),
        9 );
    std::cout &lt;&lt; res[0] &lt;&lt; &quot;=&quot; &lt;&lt; res[1] &lt;&lt; std::endl;
    return 0;
}
</code></pre>
<p>das 'pos' wäre aber nicht nötig, solange vorher kein passender Ausdruck erscheint.</p>
<p>Gruß<br />
Werner</p>
<p>Edit: const reference hinzugefügt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/966018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/966018</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Fri, 13 Jan 2006 21:27:44 GMT</pubDate></item></channel></rss>