Nach meiner Argumentation sollte es mit einem Leerzeichen> beliebigen Zeichen vor dem Ende der Zeichenfolge übereinstimmen, und ?
macht es faul, das heißt abc)
? ist das beste Spiel.
Warum mache ich falsch? Sollte es nicht übereinstimmen abc)
?
Antworten:
1 für die Antwort № 1Deine Regex:
(.*?)$
oder um es lesbarer zu machen:
s(.*?)$
ist nicht wirklich faul, da es nichts gibt nach fauler Quantifizierer .*?
. Es ist ziemlich genau wie:
s(.*)$
das ist der Grund, warum es den ersten Raum und alles nach diesem Raum findet.
1 für die Antwort № 2
Es findet den ersten Raum und dann alles andere bis zum Ende der Saite.
Aufgrund der Reihenfolge der Auswertung wird dies zuerst erhalten (Raum) dann dein
(.*?)
passt alles bis zum Ende der Zeichenfolge an $
. Dies läuft von links nach rechts.
Wenn du wirklich etwas nach dem suchen willstletzter Platz, wie von @RevanProdigalKnight gezeigt, müssen Sie sicherstellen, dass es ein Leerzeichen und dann alles, was kein Leerzeichen ist, bis zum Ende der Zeichenfolge übereinstimmt. Ich werde den folgenden Regex vorschlagen:
/sS*$/