Leerzeichen in Regulärenausdrücken?
baeckerman83
- php
0 Tom
Hi!
Ich habe einen Text:
abcde.?.?.fghij
Wobei die Punkte genau ein Leerzeichen sind und die Fragezeichen sind manchmal Fragezeichen und manchmal Zahlen.
Wie finde ich jetzt das mit einem Regularenausdruck?
Ich habe es so versucht:
/abcde\s.\s.\sfghij/
Aber das liefert gar keinen Rückgabewert.
Mit
/abcde.....fghij/
findet er zu viel.
Hello,
Hi!
Ich habe einen Text:
abcde.?.?.fghijWobei die Punkte genau ein Leerzeichen sind und die Fragezeichen sind manchmal Fragezeichen und manchmal Zahlen.
Leerzeichen bleiben Leerzeichen.
Manchmal Fragezeichen und manchmal eine Ziffer wäre
~abcde [?d] [?d] fghij~
Manchmal ein Faragezeichen und manchmal eine Zahl ist dann schon etwas schwieriger
~abcde (?|d+) (?|d+) fghij~ // hoffentlich stimmt es
Und wenn die Zahl auch noch negativ sein darf
~abcde (?|-?d+) (?|-?d+) fghij~ // hoffentlich stimmt es
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
Hi!
Danke schön!
Dachte Leerzeichen sind auch was bestimmtes. Es sind nur Ziffern. Dann ist es gut.
@@Tom:
Leerzeichen bleiben Leerzeichen.
Bis hierhin stimmt’s noch.
Manchmal Fragezeichen und manchmal eine Ziffer wäre
~abcde [?d] [?d] fghij~
Nö. d bleibt d. \d steht für eine Ziffer. Also:
adcde [?\d] [?\d] fghij
Oder in Analogie zu den nachfolgenden Beispielen
adcde (?:?|\d) (?:?|\d) fghij
Manchmal ein Faragezeichen und manchmal eine Zahl ist dann schon etwas schwieriger
~abcde (?|d+) (?|d+) fghij~ // hoffentlich stimmt es
Bis auf das fehlende '', sofern du mit einer „Zahl“ eine natürliche meinst. Ansonsten wird es wirklich schon etwas schwieriger: dann müssten auch Vorzeichen, maximal ein Dezimaltrennzeichen, optional auch ein 'E' gefolgt von einer Ganzzahl mit optionalen Vorzeichen zugelassen werden. Von Hexadezimalzahlen will ich an dieser Stelle schweigen.
Und wenn die Zahl auch noch negativ sein darf
~abcde (?|-?d+) (?|-?d+) fghij~ // hoffentlich stimmt es
Warum lässt du nicht auch '+' als Vorzeichen zu?
abcde (?:?|[+-]?\d+) (?:?|[+-]?\d+) fghij
Live long and prosper,
Gunnar
Hello,
Nö. d bleibt d. \d steht für eine Ziffer. Also:
adcde [?\d] [?\d] fghij
Danke für die Korrektur.
Warum lässt du nicht auch '+' als Vorzeichen zu?
abcde (?:?|[+-]?\d+) (?:?|[+-]?\d+) fghij
Ja, das ist eine gute Frage. Es wird üblicherweise aber nicht geschrieben.
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg