达内课程-正则表达式
发布时间:2020-12-14 06:43:40 所属栏目:百科 来源:网络整理
导读:Regex正则表达式 正确的字符串格式规则 一般用来判断用户的输入格式 正则表达式 匹配的字符串 k k abc abc [abc] […]表示字符集,是其中一个即可:a/b/c [abc][123] a1/a2/a3/b1/b2/b3/c1/c2/c3 [a-z] a/b/c/d…z [a-zA-Z0-9] a/A/z/Z/0/9.._ [^a-zA-Z] ^表
Regex正则表达式正确的字符串格式规则
相关方法matches(正则表达式)判断当前字符串,是否匹配正则表达式 栗子public class Test {
public static void main(String[] args) {
System.out.println("输入身份证号:");
String s = new Scanner(System.in).nextLine();
/* * 123456789012345 * 123456789012345678 * 12345678901234567x * 12345678901234567X * * d{15}|d{17}[dxX] * 需要对“”进行转义 * -> * \-> */
String regex = "d{15}|d{17}[dxX]";
if(s.matches(regex)){
System.out.println("格式正确");
}else{
System.out.println("格式错误");
}
}
}
栗子public class Test {
public static void main(String[] args) {
System.out.println("输入固定电话:");
String s = new Scanner(System.in).nextLine();
/* * 123456 * 1234567 * 12345678 * (010)12345678 * (0102)12345678 * 010-123456 * 0102-1234567 * * (d{3,4}-|(d{3,4}))?d{6,8} */
String regex = "(d{3,8}";
if(s.matches(regex)){
System.out.println("格式正确");
}else{
System.out.println("格式错误");
}
}
}
replaceAll(正则表达式,子串)将找到的匹配子串,替换为新的子串 public class Test {
public static void main(String[] args) {
System.out.println("言论自由:");
String s = new Scanner(System.in).nextLine();
String regex = "草泥马|尼玛|尼妹|傻逼";
s = s.replaceAll(regex,"***");
System.out.println(s);
}
}
运行结果
split(正则表达式)用匹配的子串,拆分字符串 public class Test {
public static void main(String[] args) {
System.out.println("输入关键词列表,用逗号、分号、空格分隔");
String s = new Scanner(System.in).nextLine();
String regex = "[,; ]+";
String[] a = s.split(regex);
for(int i=0;i<s.length();i++){
System.out.println(a[i]);
}
}
}
java.util.regex.Pattern 和java.util.regex.MatcherPattern 封装正则表达式 创建实例Pattern p = Pattern.compile(正则表达式); Matcher方法find() find(int from) group() start() 栗子 public class Test {
public static void main(String[] args) {
System.out.println("输入:");
String s = new Scanner(System.in).nextLine();
//3到多个连续数字
String regex = "d{3,}";
Matcher m = Pattern.compile(regex)
.matcher(s);
//一直向后查找,直到false
while(m.find()){
String s2 = m.group();
int start = m.start();
int end = m.end();
System.out.println(start+"-"+end+":"+s2);
}
}
} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |