正则表达式
- 正则表达式是用来匹配用户的输入是否符合需求的
1,*,+,?,{n,},{n},{m,n}都是用来匹配次数的
public static void main(String[] args) {
String str = "javaaaaa";
// regular expression
// * 表示紧跟着的前面的子表达出现0次或者多次
System.out.println(str.matches("java*"));
// + 表示紧跟着的前面的子表达至少出现一次
System.out.println(str.matches("java+"));
// ? 表示紧跟着的前面的子表达出现0次或者1次
System.out.println(str.matches("java?"));
// {n,} 表示紧跟着的前面的子表达至少n次
System.out.println(str.matches("java{3,}"));
// {n} 表示紧跟着的前面的子表达出现3次
System.out.println(str.matches("java{3}"));
// {m,n} 表示紧跟着的前面的子表达出现m次,但是不能超过n次(可以等于n)
System.out.println(str.matches("java{3,5}"));
}
2,\d,.,\s,\w,
public static void main(String[] args) {
String str = "123456_";
// \d 与数字字符匹配
System.out.println(str.matches("\\d{6}"));
// .除了 \n\r不能匹配,其他都匹配
System.out.println(str.matches(".{7}"));
// \s 匹配任何空白字符,包括空格、制表符、换页符等。与 [ \f\n\r\t 空格] 等效。
System.out.println(str.matches("\\d{6}\\s*"));
// \w 匹配所有的英文单词(大小写) 数字字符 _
System.out.println(str.matches("\\w{7}"));
}
3,[ ]
public static void main(String[] args) {
String str = "16234234344";
// 与[] 里面的内容只能匹配一个
System.out.println(str.matches("a[ace]c."));
// ^ 把中括号种的字符都排除在外,反过来
System.out.println(str.matches("a[^ace]c"));
// ^以后面的子表达式开头 $表示以前面的子表达式结尾
System.out.println(str.matches("^a[abc]c$"));
//匹配手机号
System.out.println(str.matches("^1[4-9]\\d{9}"));
//23523@qq.com
String emailStr = "234123434@sina.com";
//匹配邮箱
String regEx = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";
System.out.println(emailStr.matches(regEx));
}
4,分组
public static void main(String[] args) {
String str = "12345java";
Pattern pattern = Pattern.compile("(\\d+)(\\w+)");
Matcher matcher = pattern.matcher(str);
//一定要匹配上才有分组
if (matcher.matches()){
//表示返回这个表达式
System.out.println(matcher.group());
//表示返回第一个分组的内容
System.out.println(matcher.group(1));
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/192963.html