Folgendes sollte übereinstimmen:
AAA123
ABCDEFGH123
XXXX123
kann ich: ".*123"
?
Ja, du kannst. Das sollte funktionieren.
.
= irgendein Zeichen\.
= das tatsächliche Punktzeichen.?
= .{0,1}
= entspricht einem beliebigen Zeichen null oder einmal.*
= .{0,}
= null oder mehrmals mit einem beliebigen Zeichen übereinstimmen.+
= .{1,}
= ein oder mehrere Male mit einem beliebigen Zeichen übereinstimmenJa, das funktioniert, obwohl .
nicht mit Zeilenumbrüchen übereinstimmt, es sei denn, Sie übergeben das Flag DOTALL beim Kompilieren des Ausdrucks:
Pattern pattern = Pattern.compile(".*123", Pattern.DOTALL);
Matcher matcher = pattern.matcher(inputStr);
boolean matchFound = matcher.matches();
Verwenden Sie das Muster .
, um ein Zeichen einmalig zu finden, .*
, um ein beliebiges Zeichen null oder mehr zu finden, .+
, um ein oder mehrere Zeichen zu finden.
Es gibt viele ausgereifte Test- und Entwicklungstools für Regex, aber wenn Sie nur einen einfachen Test-Harness in Java möchten, können Sie hier Folgendes spielen:
String[] tests = {
"AAA123",
"ABCDEFGH123",
"XXXX123",
"XYZ123ABC",
"123123",
"X123",
"123",
};
for (String test : tests) {
System.out.println(test + " " +test.matches(".+123"));
}
Jetzt können Sie problemlos neue Testfälle hinzufügen und neue Muster ausprobieren. Viel Spaß beim Erkunden von Regex.
Nein, *
stimmt mit null oder mehr Zeichen überein. Sie sollten +
verwenden, der stattdessen einem oder mehreren entspricht.
Dieser Ausdruck funktioniert möglicherweise besser für Sie: [A-Z]+123
Versuchen Sie es mit dem Regex. {3,}. Dies entspricht allen Zeichen, die eine neue Zeile erwarten.
Die gebräuchlichste Art, dies zu kodieren, ist eine Zeichenklasse, deren Mitglieder eine Partition der Menge aller möglichen Zeichen bilden.
Normalerweise schreiben die Leute das als [\s\S]
(Leerzeichen oder Nicht-Leerzeichen), obwohl [\w\W]
, [\d\D]
usw. alle funktionieren würden.
Die, die mir geholfen hat, falls Sie Interesse haben, einfach einen Charakter zu überprüfen
[^]+
Spezifische Lösung für das Beispielproblem: -
Versuchen Sie [A-Z] * 123 $ stimmt mit 123, AAA123, ASDFRRF123 überein. Falls Sie vor 123 mindestens ein Zeichen benötigen, verwenden Sie [A-Z] + 123 $.
Allgemeine Lösung für die Frage (Wie wird "beliebiges Zeichen" im regulären Ausdruck gefunden?): -