Ich stieß auf die folgende Zeichenfolge aufgeteilt line.split ("\ s * //") [0] aber kann nicht scheinen, finden Sie Dokumentation auf die Verwendung des '/' - Zeichens in regulären Ausdrücken.Java regex line.split ("\ s * //")
Hier mein Code:
String line = "type=path.composition id=pathComp";
line = line.split("\\s*//")[0];
Console console = System.console();
System.out.println("This is the line: " + line);
Hier die Ausgabe:
This is the line: type=rule.composition id=ruleComp
Ich frage mich, was genau ‚/‘ tut, um den regulären Ausdruck und habe mich gefragt, ob jemand in der Lage sein würde, mich zu zeigen zu irgendeiner Dokumentation und/oder einer Antwort, die hervorhebt, was es tut?
Ich bemerkte auch, dass, wenn ich das "//" aus der Regex entferne, die Ausgabe nur zum ersten Zeichen wird, was wohl Sinn macht, da \ s * bedeutet, dass der Ausdruck auf null oder mehr Leerzeichen spuckt Figuren.
This is the line: t
Dies jedoch stellt sich die Frage: „Was bedeutet die‚//‘in den regulären Ausdruck, der die Spaltung am Ende der Leitung auftreten, sieht“?
Jeder Rat würde sehr geschätzt werden.
Z
A '/' macht nichts Besonderes und wird wörtlich genommen; kannst du "\ s * //" "lesen" und sehen, was es an erster Stelle bedeutet? – fge
Hallo fge. Danke dafür. Ich bin mir nicht sicher, ob '/' wörtlich genommen würde. Es erlaubt sicherlich, die Zeile bis zum Ende zu lesen. Wenn ich den Rückgabewert entferne, ändert sich dies in 'Dies ist die Zeile: t'. Was meinst du mit "'lese' \ s * //"? – Z101
Der Regex '" \\ s * // "bedeutet" zwei Vorwärtsstriche, denen gegebenenfalls Whitespaces vorangestellt sind ". Da Ihre Eingabezeichenfolge keine Schrägstriche hat, ** ist die Zeichenfolge * nicht * geteilt ** und wird einfach unverändert zurückgegeben. Wie die [javadoc] (https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#split-java.lang.String-int-) sagt: * Wenn der Ausdruck tut nicht übereinstimmen irgendein Teil der Eingabe dann das resultierende Array hat nur ein Element, nämlich diese Zeichenfolge. * – Andreas