tag:forum.selfhtml.org,2005:/selfRegExp: Zahlen in allen möglichen Varianten – SELFHTML-Forum2011-09-27T17:48:08Zhttps://forum.selfhtml.org/self/2011/sep/26/1-regexp-zahlen-in-allen-moeglichen-varianten/1526550#m1526550Louis Armstrong2011-09-26T10:20:27Z2011-09-26T10:20:27ZRegExp: Zahlen in allen möglichen Varianten<p>Hallo,</p>
<p>ich habe schon lange nichts mehr mit RegEx's gemacht. Nun wurde mir eine kleine Aufgabe zuteil, mit der ich schon überfordert bin.</p>
<p>Gegeben sind folgende Zahlen-Varianten:</p>
<p>1.2<br>
1,2<br>
1,002<br>
0001,01<br>
00.1<br>
1/2<br>
1,003</p>
<p>Mein RegEx, den ich bisher dazu zusammengezimmert habe, ist folgender:</p>
<p>[0-9]{1,4}[,./][0-9]{1,3}<br>
(Delimiter ist = )</p>
<p>Der erkennt nur 1.2 als Treffer. Ich habe schon sehr viel damit experminetiert ([] durch() ersetzt, etc.), aber nichts will klappen.</p>
<p>Ist bestimmt nur ne Kleinigkeit, aber ich komm nicht drauf. Bitte helft mir damit.</p>
<p>Freundliche Grüße<br>
Louis, der Trompeter</p>
https://forum.selfhtml.org/self/2011/sep/26/1-regexp-zahlen-in-allen-moeglichen-varianten/1526557#m1526557Louis Armstrong2011-09-26T10:21:12Z2011-09-26T10:21:12ZRegExp: Zahlen in allen möglichen Varianten<p>Entschuldigung, habe den Post aus Versehen doppelt abgeschickt.</p>
https://forum.selfhtml.org/self/2011/sep/26/1-regexp-zahlen-in-allen-moeglichen-varianten/1526556#m1526556Louis Armstrong2011-09-27T15:12:11Z2011-09-27T15:12:11ZProblem noch nicht gelöst<p>Hallo,</p>
<p>weiß denn keiner eine Antwort? Oder denkt ihr, das Thema wäre erledigt, nur weil im Thread eine Antwort von mir angelegt wurde?</p>
<p>Grüße</p>
https://forum.selfhtml.org/self/2011/sep/26/1-regexp-zahlen-in-allen-moeglichen-varianten/1526555#m1526555ChrisB2011-09-27T15:41:36Z2011-09-27T15:41:36ZRegExp: Zahlen in allen möglichen Varianten<p>Hi,</p>
<blockquote>
<p>Gegeben sind folgende Zahlen-Varianten:</p>
<p>1.2<br>
1,2<br>
1,002<br>
0001,01<br>
00.1<br>
1/2<br>
1,003</p>
<p>Mein RegEx, den ich bisher dazu zusammengezimmert habe, ist folgender:</p>
<p>[0-9]{1,4}[,./][0-9]{1,3}<br>
(Delimiter ist = )</p>
<p>Der erkennt nur 1.2 als Treffer.</p>
</blockquote>
<p>Nein, der erkennt alle Zahlen, die du oben genannt hast, als solche.<br>
(Sofern man sie jeweils einzeln für sich prüft.)</p>
<p>MfG ChrisB</p>
<div class="signature">-- <br>
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
</div>
https://forum.selfhtml.org/self/2011/sep/26/1-regexp-zahlen-in-allen-moeglichen-varianten/1526551#m1526551peterS.pseliger@gmx.net2011-09-27T16:49:22Z2011-09-27T16:49:22ZRegExp: Zahlen in allen möglichen Varianten<p>gruss Louis,</p>
<p><code class="language-javascript"><span class="token punctuation">[</span><span class="token number">0</span><span class="token operator">-</span><span class="token number">9</span><span class="token punctuation">]</span><span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">4</span><span class="token punctuation">}</span><span class="token punctuation">[</span><span class="token punctuation">,</span><span class="token punctuation">.</span>\<span class="token operator">/</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token operator">-</span><span class="token number">9</span><span class="token punctuation">]</span><span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">}</span></code><br>
anstelle von:<br>
<code class="language-javascript"><span class="token punctuation">[</span><span class="token number">0</span><span class="token operator">-</span><span class="token number">9</span><span class="token punctuation">]</span><span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">4</span><span class="token punctuation">}</span><span class="token punctuation">[</span><span class="token punctuation">,</span>\<span class="token punctuation">.</span><span class="token operator">/</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token operator">-</span><span class="token number">9</span><span class="token punctuation">]</span><span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">}</span></code></p>
<p>der punkt in einer zeichenklasse wird nicht maskiert.<br>
dafuer gehoert die maskierung an den *slash*.</p>
<p>so long - peterS. - pseliger@gmx.net</p>
<div class="signature">-- <br>
»Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.<br>
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - <a href="http://javascript.crockford.com/" rel="nofollow noopener noreferrer">Douglas Crockford</a><br>
<a href="http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%28+fl%3A%29+br%3A%3E+va%3A%28+ls%3A%26+fo%3A%29+rl%3A%29+n3%3B%7D+n4%3A%7D+ss%3A%7D+de%3A%B5+js%3A%7D+mo%3A%3F+zu%3A%5D" rel="nofollow noopener noreferrer">ie:( fl:) br:> va:( ls:& fo:) rl:) n3;} n4:} ss:} de:µ js:} mo:? zu:]</a>
</div>
https://forum.selfhtml.org/self/2011/sep/26/1-regexp-zahlen-in-allen-moeglichen-varianten/1526552#m1526552dedlfix2011-09-27T17:15:34Z2011-09-27T17:15:34ZRegExp: Zahlen in allen möglichen Varianten<p>Hi!</p>
<blockquote>
<p>[0-9]{1,4}[,./][0-9]{1,3}<br>
anstelle von:<br>
[0-9]{1,4}[,./][0-9]{1,3}<br>
der punkt in einer zeichenklasse wird nicht maskiert.</p>
</blockquote>
<p>Er muss nicht maskiert werden, kann aber (wenn man von PCRE ausgeht).</p>
<blockquote>
<p>dafuer gehoert die maskierung an den *slash*.</p>
</blockquote>
<p>Nein, das muss auch nicht. Er hat ja = als Delimiter.</p>
<p>Vielleicht ist sein Problem, dass er mehrere Kontexte geschachtelt hat, beispielsweise den Ausdruck in einem PHP-String stehen hat und nun die Maskierungen nicht eindeutig notiert sind.</p>
<p>Lo!</p>
https://forum.selfhtml.org/self/2011/sep/26/1-regexp-zahlen-in-allen-moeglichen-varianten/1526553#m1526553peterS.pseliger@gmx.net2011-09-27T17:31:40Z2011-09-27T17:31:40ZRegExp: Zahlen in allen möglichen Varianten<p>gruss dedlfix,</p>
<blockquote>
<p>Er muss nicht maskiert werden, kann aber (wenn man von PCRE ausgeht).</p>
</blockquote>
<p>stimmt.</p>
<blockquote>
<blockquote>
<p>dafuer gehoert die maskierung an den *slash*.</p>
</blockquote>
<p>Nein, das muss auch nicht. Er hat ja = als Delimiter.</p>
</blockquote>
<p>mein RegExp-tester meckert den ausdruck ohne maskierten<br>
slash in der zeichenklasse trotzdem an - mmh?</p>
<p>der gesamte ausdruck, so wie ich ihn vorhin gepostet habe,<br>
matched nur mit dieser maskierung alle von Louis gegebenen<br>
beispiele.</p>
<p>bitte klaert mich auf.</p>
<p>danke - peterS. - pseliger@gmx.net</p>
https://forum.selfhtml.org/self/2011/sep/26/1-regexp-zahlen-in-allen-moeglichen-varianten/1526554#m1526554dedlfix2011-09-27T17:48:08Z2011-09-27T17:48:08ZRegExp: Zahlen in allen möglichen Varianten<p>Hi!</p>
<blockquote>
<blockquote>
<blockquote>
<p>dafuer gehoert die maskierung an den *slash*.<br>
Nein, das muss auch nicht. Er hat ja = als Delimiter.</p>
</blockquote>
</blockquote>
<p>mein RegExp-tester meckert den ausdruck ohne maskierten<br>
slash in der zeichenklasse trotzdem an - mmh?</p>
</blockquote>
<p>Der geht vielleicht davon aus, dass / der Delimiter für den gesamten Ausdruck ist. In dem Fall, muss ein / auch innerhalb einer Zeichenklasse maskiert werden, anderenfalls nicht.</p>
<pre><code class="block language-php"><span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token function">preg_match</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'/foo[bar/]/'</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'foo/'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token function">preg_match</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'/foo[bar\/]/'</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'foo/'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token function">preg_match</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'#foo[bar/]#'</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'foo/'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<p>Die erste Zeile ergibt eine Fehlermeldung ("Unknown modifier ']'" und false als Rückgabe), die beiden anderen Zeilen nicht. (Ergebnis ist jeweils 1 (eine Fundstelle)).</p>
<blockquote>
<p>der gesamte ausdruck, so wie ich ihn vorhin gepostet habe, matched nur mit dieser maskierung alle von Louis gegebenen beispiele.</p>
</blockquote>
<p><code class="language-php"><span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token function">preg_match</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'=[0-9]{1,4}[,./][0-9]{1,3}='</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'...'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></p>
<p>So passt das auf alle Beispiele.</p>
<p>Lo!</p>