选择匹配符 |
需求:
在匹配字符的时候有选择性,即:既可以匹配这个,又可以匹配那个,这时需要用到选择匹配符号 |
代码演示:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String a = "weitianyuwhy魏";
String str = "wei|魏|why";
Pattern pattern = Pattern.compile(str);
Matcher matcher = pattern.matcher(a);
while(matcher.find()){
System.out.println("找到:" + matcher.group(0));
}
}
}
限定符
代码演示:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String a = "w111111wwww";
// String str = "w{3}";//表示匹配www
// String str = "1{4}";//表示匹配1111
// String str = "\\d{2}";//表示匹配两位的任意数字字符
//细节:java匹配默认贪婪匹配,即尽可能匹配多的
//此处结果为wwww
// String str = "w{3,4}";//表示匹配www或者wwww
// String str = "\\d{2,4}";//表示匹配2,或3或4位数
//1+
// String str = "1+";//表示匹配一个1或者多个1
// String str = "\\d+";//表示匹配一个数字或多个数字
//1*
// String str = "1*";//表示匹配0个1或者多个1
//? 遵守贪婪匹配
String str = "w1?";//表示匹配a或者a1
Pattern pattern = Pattern.compile(str);
Matcher matcher = pattern.matcher(a);
while(matcher.find()){
System.out.println("找到:" + matcher.group(0));
}
}
}
定位符
定位符,规定匹配的字符串出现的位置,比如在字符串的开始还是结束位置。
代码演示:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String a = "123abc";
//表示以至少一个数字开头,后接任意一个小写字母的字符串
// String str = "^[0-9]+[a-z]*";
//表示以至少一个数字开头,必须以至少一个小写字母结束
String str = "^[0-9]+[a-z]$";
Pattern pattern = Pattern.compile(str);
Matcher matcher = pattern.matcher(a);
while(matcher.find()){
System.out.println("找到:" + matcher.group(0));
}
}
}
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String a = "wty123abcwty 12wty 法 ff wty";
//表示匹配边界wty[这里的边界是指:被匹配的字符串最后,也可以是空格的子串后面]
// String str = "wty\\b";
String str = "wty\\B";//与\\b相反
Pattern pattern = Pattern.compile(str);
Matcher matcher = pattern.matcher(a);
while(matcher.find()){
System.out.println("找到:" + matcher.group(0));
}
}
}