Schrift
[thread]7012[/thread]

seltsames regex-problem



<< >> 5 Einträge, 1 Seite
supersucker
 2005-05-25 23:25
#55120 #55120
User since
2005-03-17
118 Artikel
BenutzerIn
[default_avatar]
Hi zusammen,

ich hab folgende regex:

Code: (dl )
([-]?)([.]{1}\d+)


die sollte mir also solche zahlen wie bsp.

-.345
oder
.345

erkennen, NICHT aber sowas wie:

-12.345
oder
12.345

dummerweise tut sie das aber doch, sie erkennt also jede der 4 beispiel-zahlen.
kann mir jemand sagen was ich an regexes offensichtlich falsch verstanden hab?

für mich bedeutet der ausdruck

Code: (dl )
([-]?)([.]{1}\d+)


"erkenne ein oder kein minuszeichen, gefolgt von genau einem punkt, gefolgt von einer zahl oder mehreren"

versteh nicht was da falsch läuft,

danke für jede hilfe
GwenDragon
 2005-05-26 00:28
#55121 #55121
User since
2005-01-17
14745 Artikel
Admin1
[Homepage]
user image
[quote=supersucker,25.05.2005, 21:25]
Code: (dl )
([-]?)([.]{1}\d+)


die sollte mir also solche zahlen wie bsp.

-.345
oder
.345

erkennen, NICHT aber sowas wie:

-12.345
oder
12.345[/quote]
Code: (dl )
^-?\.\d+
coax
 2005-05-26 02:56
#55122 #55122
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
[quote=supersucker,25.05.2005, 21:25]Hi zusammen,
dummerweise tut sie das aber doch, sie erkennt also jede der 4 beispiel-zahlen.[/quote]
Auf -12.345 und 12.345 matcht dieser Teil [.]{1}\d+, da das Minuszeichen ja optional ist. Du musst also angeben, dass vor dem Dezimalpunkt nichts weiter auszer ein Minuszeichen stehen darf.
Wie du das erreichst kommt darauf an was vor diesen Zahlen noch steht, sind sie am Stringanfang nimmst du ^, tauchen sie nach Leerzeichen auf nimmst du \s+?.
,,Das perlt aber heute wieder...'' -- Dittsche
supersucker
 2005-05-26 16:16
#55123 #55123
User since
2005-03-17
118 Artikel
BenutzerIn
[default_avatar]
danke für die tips!

hatte das mit dem zeilenanfang völlig ausser acht gelassen.......
mama
 2005-05-29 18:48
#55124 #55124
User since
2005-05-29
3 Artikel
BenutzerIn
[default_avatar]
du kannst es vielleicht auch mit einem negativen lookahead machen:

([-]?)([.]{1}\d+)(?!\.?\d+)
<< >> 5 Einträge, 1 Seite



View all threads created 2005-05-25 23:25.