Muster | Übereinstimmungszeichenfolge |
---|---|
XYZ | Die Zeichenfolge XYZ |
[XYZ] | Ein Charakter von XYZ |
[^XYZ] | Ein anderes Zeichen als XYZ |
[X-Z] | X~Ein Buchstabe im Bereich von Y. |
[a-zA-Z] | Bereich von a bis z oder von A bis Z. |
(X|Y|Z) | Einer von XYZ [ABC|] |
X* | X kommt 0 Mal oder öfter vor ("do*n"Im Falle von"dn","don","dooon"Eine solche) |
X+ | X kommt mehr als einmal vor ("do+n"Im Falle von"don","dooon"Eine solche) |
X? | X kommt 0 oder 1 Mal vor ("do?n"Im Falle von"dn"Oder"don") |
X{n} | X kommt n-mal vor ("do{2}n"Im Falle von"doon") |
X{n,} | X kommt n-mal oder öfter vor ("do{2,}n"Im Falle von"doon","doooon"Eine solche) |
X{n,m} | X tritt n bis m mal auf ("do{2,3}n"Im Falle von"doon"Oder"dooon") |
. | Beliebiger Charakter |
\w | Großbuchstabe/Niedrigere alphanumerische Zeichen, Unterstrich [a-zA-Z_0-9] |
\d | Zahlen [0-9] |
\D | Andere als Zahlen [^0-9] |
\s | Leer [ \t\n\x0B\f\r] |
^ | Übereinstimmung am Zeilenanfang |
$ | Match am Ende der Zeile |
\b | Wortgrenzen |
\\ | Match Back Slash |
\n | Zeilenumbruchzeichen übereinstimmen |
\t | Tabulatorzeichen abgleichen |
^\d{10}$ | 10-stellige Nummer mit halber Breite |
^\d{5,10}$ | Halbe Breite Nummer 5 Stellen oder mehr und 10 Stellen oder weniger |
\d{2,4}-\d{2,4}-\d{4} | Telefonnummer (Halbwertsbreite Nummer 2~3 Ziffern-Halbwertsbreite Nummer 2~3 Ziffern-4 Zahlen mit halber Breite) |
^\d{3}-\d{4}$ | Postleitzahl (Halbe Breite Nummer 3 Ziffern-4 Zahlen mit halber Breite) |
[1]+$ | Ein oder mehrere alphanumerische Zeichen halber Breite (0-9、a-z、A-Z) |
//Beispiel 1 Telefon/Postleitzahl übereinstimmen
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
//Zu beurteilende Zeichenkette
String str = "012-345-6789";
//Generieren Sie ein zu beurteilendes Muster
Pattern p = Pattern.compile("\\d{2,4}-\\d{2,4}-\\d{4}"); //Telefonnummer
//Pattern p = Pattern.compile("^\\d{3}-\\d{4}$"); //Postleitzahl
Matcher m = p.matcher(str);
System.out.println(m.find()); //true
}
}
//Probe 2 vorwärts/Rückseite/Teilweise Übereinstimmung
public class Main {
public static void main(String[] args) {
//Zu beurteilende Zeichenkette
String str = "000012-345-6789";
//Generieren Sie ein zu beurteilendes Muster
//Pattern p = Pattern.compile("\\d{2,4}-\\d{2,4}-\\d{4}.*"); //Präfix der Telefonnummer
//Pattern p = Pattern.compile(".*\\d{2,4}-\\d{2,4}-\\d{4}"); //Telefonnummer Suffix übereinstimmen
Pattern p = Pattern.compile(".*\\d{2,4}-\\d{2,4}-\\d{4}.*"); //Teilweise Übereinstimmung der Telefonnummer
Matcher m = p.matcher(str);
System.out.println(m.find()); //true
}
}
group [0]
: gesamte übereinstimmende Zeichenfolgegroup [1]
: Erstes Element der Submatch-Zeichenfolgeimport java.util.*;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
var str = "Mobil ist 0123-99-Es ist 0000. Zuhause ist 000-123-4567 und so weiter.";
var ptn = Pattern.compile("(\\d{2,4})-(\\d{2,4})-(\\d{4})");
var match = ptn.matcher(str);
while (match.find()) {
System.out.println("Startposition:" + match.start());
System.out.println("Endposition:" + match.end());
System.out.println("Passende Zeichenfolge:" + match.group());
System.out.println("Vorwahl:" + match.group(1));
System.out.println("Postleitzahl:" + match.group(2));
System.out.println("Abonnentenanzahl:" + match.group(3));
System.out.println("-----");
}
}
}
CASE_INSENSITIVE
import java.util.*;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
var str = "Für die Arbeit ist [email protected] ist com. NEKO für den privaten [email protected] ist com.";
var ptn = Pattern.compile("[a-z0-9.!#$%&'*+/=?^_{|}~-]+@[a-z0-9-]+(\\.[a-z0-9-]+)*", Pattern.CASE_INSENSITIVE);
var match = ptn.matcher(str);
while (match.find()) {
System.out.println(match.group());
}
}
}
MULTILINE
^
und $
^
entspricht nicht nur dem Anfang, sondern auch der Zahl nach dem Zeilenumbruchimport java.util.*;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
var str = "Freunde in der ersten Klasse\Ich frage mich, ob n100 Leute das können\n";
// var ptn = Pattern.compile("^\\d*");
var ptn = Pattern.compile("^\\d*", Pattern.MULTILINE);
var match = ptn.matcher(str);
while (match.find()) {
System.out.println(match.group()); //1 100
}
}
}
DOTALL
.
\ n
)import java.util.*;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
var str = "Wollte sich treffen\nWollte sich treffen\nWollte sich treffen\nYES";
// var ptn = Pattern.compile("^.+");
var ptn = Pattern.compile("^.+", Pattern.DOTALL);
var match = ptn.matcher(str);
while (match.find()) {
System.out.println(match.group());
//Wollte sich treffen
//Wollte sich treffen
//Wollte sich treffen
//YES
}
}
}
var ptn = Pattern.compile("(?i)[a-z0-9.!#$%&'*+/=?^_{|}~-]+@[a-z0-9-]+(\\.[a-z0-9-]+)*");
//var ptn = Pattern.compile("[a-z0-9.!#$%&'*+/=?^_{|}~-]+@[a-z0-9-]+(\\.[a-z0-9-]+)*", Pattern.CASE_INSENSITIVE);
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
var tags = "<p><strong>NEKO</strong>Seite? ˅<a href='index.html'><img src='cat.jpg' /></a></p>";
//Längste Übereinstimmung
//var ptn = Pattern.compile("<.+>"); //<p><strong>NEKO</strong>Seite? ˅<a href='index.html'><img src='cat.jpg' /></a></p>
//Kürzeste Übereinstimmung
var ptn = Pattern.compile("<.+?>");
var match = ptn.matcher(tags);
while (match.find()) {
System.out.println(match.group());
//<p>
//<strong>
//</strong>
//<a href='index.html'>
//<img src='cat.jpg' />
//</a>
//</p>
}
}
}
group (" name ")
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
var msg = "Mobil ist 0123-99-Es ist 0000. Zuhause ist 000-123-4567 und so weiter.";
var ptn = Pattern.compile("(?<area>\\d{2,4})-(?<city>\\d{2,4})-(?<local>\\d{4})");
var match = ptn.matcher(msg);
while (match.find()) {
System.out.println("Startposition:" + match.start());
System.out.println("Endposition:" + match.end());
System.out.println("Passende Zeichenfolge:" + match.group());
System.out.println("Vorwahl:" + match.group("area"));
System.out.println("Postleitzahl:" + match.group("city"));
System.out.println("Abonnentenanzahl:" + match.group("local"));
System.out.println("-----");
}
}
}
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
//Rückverweis
public static void main(String args[]){
String str1 = "My name is <div>Neko</div>";
String str2 = "I am a <span>Cat</span>";
String str3 = "<span>Hello World</div>";
String regex = "<(div|span)>.*?<\\/\\1>";
Pattern p = Pattern.compile(regex);
System.out.println("Muster: " + regex);
check(p, str1);
check(p, str2);
check(p, str3);
}
private static void check(Pattern p, String target){
Matcher m = p.matcher(target);
if (m.find()){
System.out.println("Match! " + target);
}else{
System.out.println("Unmatch! " + target);
}
}
}
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
private static void match(Pattern ptn, String input) {
var match = ptn.matcher(input);
while (match.find()) {
System.out.println(match.group());
}
System.out.println("---");
}
public static void main(String[] args) {
var re1 = Pattern.compile("Meine(?=Ja)");
var re2 = Pattern.compile("Meine(?!Ja)");
var re3 = Pattern.compile("(?<=。)Meine");
var re4 = Pattern.compile("(?<!。)Meine");
var msg1 = "Mein Ja ist eine Katze";
var msg2 = "Ich bin eine Katze. Mein Name ist noch nicht da.";
match(re1, msg1); //Meine
match(re1, msg2); //---
match(re2, msg1); //---
match(re2, msg2); //Meine,Meine,Meine
match(re3, msg1); //---
match(re3, msg2); //Meine
match(re4, msg1); //Meine
match(re4, msg2); //Meine,Meine
}
}
$ {" name "}
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
var str = "Klicken Sie hier für Anfragen https://www.neko.com/ist.";
System.out.println(str.replaceAll(
"(?i)http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\\\w ./?%&=-]*)?",
"<a href=\"$0\">$0</a>"));
//Kontaktiere uns<a href="https://www.neko.com/">https://www.neko.com/</a>ist.
}
}
import java.util.regex.Pattern;
public class Main {
//Eine oder mehrere Ziffern+Teilen mit
public static void main(String[] args) {
var str = "Es gibt 2 Krokodile und 22 Krokodile";
var re = Pattern.compile("\\d{1,}Beeindruckend");
var result = re.split(str);
System.out.println(String.join(" ", result));
//Hinten ist ein Eichhörnchen
}
}
0-9a-zA-Z ↩︎
Recommended Posts