modèle | Match string |
---|---|
XYZ | La chaîne XYZ |
[XYZ] | Un personnage de XYZ |
[^XYZ] | Un caractère autre que XYZ |
[X-Z] | X~Une lettre dans la plage de Y |
[a-zA-Z] | Plage de a à z ou de A à Z |
(X|Y|Z) | L'un des XYZ [ABC|] |
X* | X se produit 0 fois ou plus ("do*n"dans le cas de"dn","don","dooon"Tel) |
X+ | X se produit plus d'une fois ("do+n"dans le cas de"don","dooon"Tel) |
X? | X se produit 0 ou 1 fois ("do?n"dans le cas de"dn"Ou"don") |
X{n} | X se produit n fois ("do{2}n"dans le cas de"doon") |
X{n,} | X se produit n fois ou plus ("do{2,}n"dans le cas de"doon","doooon"Tel) |
X{n,m} | X se produit n à m fois ("do{2,3}n"dans le cas de"doon"Ou"dooon") |
. | N'importe quel caractère |
\w | lettre majuscule/Caractères alphanumériques inférieurs, trait de soulignement [a-zA-Z_0-9] |
\d | Nombres [0-9] |
\D | Autre que des nombres [^0-9] |
\s | Vide [ \t\n\x0B\f\r] |
^ | Correspondance au début d'une ligne |
$ | Match en fin de ligne |
\b | Limites de mots |
\\ | Match back slash |
\n | Faire correspondre le caractère de saut de ligne |
\t | Faire correspondre le caractère de tabulation |
^\d{10}$ | Numéro demi-largeur à 10 chiffres |
^\d{5,10}$ | Numéro demi-largeur 5 chiffres ou plus et 10 chiffres ou moins |
\d{2,4}-\d{2,4}-\d{4} | numéro de téléphone (Numéro demi-largeur 2~3 chiffres-Numéro demi-largeur 2~3 chiffres-4 chiffres demi-largeur) |
^\d{3}-\d{4}$ | Code postal (Nombre demi-largeur 3 chiffres-4 chiffres demi-largeur) |
[1]+$ | Un ou plusieurs caractères alphanumériques demi-largeur (0-9、a-z、A-Z) |
//Exemple de téléphone 1/Correspondance du code postal
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
//Chaîne de caractères pour juger
String str = "012-345-6789";
//Générer un modèle pour juger
Pattern p = Pattern.compile("\\d{2,4}-\\d{2,4}-\\d{4}"); //numéro de téléphone
//Pattern p = Pattern.compile("^\\d{3}-\\d{4}$"); //Code postal
Matcher m = p.matcher(str);
System.out.println(m.find()); //true
}
}
//Échantillon 2 avant/Arrière/Match partiel
public class Main {
public static void main(String[] args) {
//Chaîne de caractères pour juger
String str = "000012-345-6789";
//Générer un modèle pour juger
//Pattern p = Pattern.compile("\\d{2,4}-\\d{2,4}-\\d{4}.*"); //Correspondance du préfixe du numéro de téléphone
//Pattern p = Pattern.compile(".*\\d{2,4}-\\d{2,4}-\\d{4}"); //Correspondance du suffixe du numéro de téléphone
Pattern p = Pattern.compile(".*\\d{2,4}-\\d{2,4}-\\d{4}.*"); //Correspondance partielle du numéro de téléphone
Matcher m = p.matcher(str);
System.out.println(m.find()); //true
}
}
while (match.find ())
jusqu'à ce que la méthode find devienne fausse, et obtenez la position de début (début), la position de fin (fin) et la chaîne de caractères correspondante (groupe) de la chaîne de caractères.group [0]
: toute la chaîne correspondantegroup [1]
: Premier élément de la chaîne de sous-correspondanceimport java.util.*;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
var str = "Mobile est 0123-99-C'est 0000. La maison est 000-123-4567 et ainsi de suite.";
var ptn = Pattern.compile("(\\d{2,4})-(\\d{2,4})-(\\d{4})");
var match = ptn.matcher(str);
while (match.find()) {
System.out.println("Position de départ:" + match.start());
System.out.println("Position finale:" + match.end());
System.out.println("Chaîne correspondante:" + match.group());
System.out.println("Indicatif régional:" + match.group(1));
System.out.println("Code de la ville:" + match.group(2));
System.out.println("Numéro d'adhérant:" + 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 = "Car le travail est [email protected]'est com. NEKO pour un usage privé@example.C'est 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
^
correspond non seulement au début mais aussi au numéro après le saut de ligne$
, il correspond également à la fin de la ligneimport java.util.*;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
var str = "Amis en première année\Je me demande si 100 personnes peuvent le faire\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 = "Voulait se rencontrer\nVoulait se rencontrer\nVoulait se rencontrer\nYES";
// var ptn = Pattern.compile("^.+");
var ptn = Pattern.compile("^.+", Pattern.DOTALL);
var match = ptn.matcher(str);
while (match.find()) {
System.out.println(match.group());
//Voulait se rencontrer
//Voulait se rencontrer
//Voulait se rencontrer
//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>site<a href='index.html'><img src='cat.jpg' /></a></p>";
//Match le plus long
//var ptn = Pattern.compile("<.+>"); //<p><strong>NEKO</strong>site<a href='index.html'><img src='cat.jpg' /></a></p>
//Match le plus court
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>
}
}
}
groupe (" nom ")
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
var msg = "Mobile est 0123-99-C'est 0000. La maison est 000-123-4567 et ainsi de suite.";
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("Position de départ:" + match.start());
System.out.println("Position finale:" + match.end());
System.out.println("Chaîne correspondante:" + match.group());
System.out.println("Indicatif régional:" + match.group("area"));
System.out.println("Code de la ville:" + match.group("city"));
System.out.println("Numéro d'adhérant:" + match.group("local"));
System.out.println("-----");
}
}
}
\\ 1
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
//Retour référence
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("modèle: " + 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("ma(?=Oui)");
var re2 = Pattern.compile("ma(?!Oui)");
var re3 = Pattern.compile("(?<=。)ma");
var re4 = Pattern.compile("(?<!。)ma");
var msg1 = "Mon oui est un chat";
var msg2 = "Je suis un chat. Mon nom n'y est pas encore.";
match(re1, msg1); //ma
match(re1, msg2); //---
match(re2, msg1); //---
match(re2, msg2); //ma,ma,ma
match(re3, msg1); //---
match(re3, msg2); //ma
match(re4, msg1); //ma
match(re4, msg2); //ma,ma
}
}
$ {" name "}
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
var str = "Cliquez ici pour les demandes de renseignements https://www.neko.com/est.";
System.out.println(str.replaceAll(
"(?i)http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\\\w ./?%&=-]*)?",
"<a href=\"$0\">$0</a>"));
//Nous contacter<a href="https://www.neko.com/">https://www.neko.com/</a>est.
}
}
import java.util.regex.Pattern;
public class Main {
//Un ou plusieurs chiffres+Split avec
public static void main(String[] args) {
var str = "Il y a 2 crocodiles et 22 crocodiles";
var re = Pattern.compile("\\d{1,}sensationnel");
var result = re.split(str);
System.out.println(String.join(" ", result));
//Il y a un écureuil dans le dos
}
}
0-9a-zA-Z ↩︎
Recommended Posts