您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
javase第三季学习笔记-正则表达式
发布时间:2017-08-10 16:16:51编辑:雪饮阅读()
正则小示例:
package com.vince.regex;
public class RegexDemo {
public static void main(String[] args) {
//判断字符串是否由数字组成
String s="220807";
char[] cs=s.toCharArray();
boolean flag=true;
for(int i=0;i<cs.length;i++){
//数字的ascll码在0-9,可以此来判断是否为数字
if(!(cs[i]>='0' && cs[i]<='9')){
flag=false;
break;
}
}
if(flag){
System.out.println("字符串是由数字组成");
}
else{
System.out.println("字符串不是由数字组成");
}
//使用正则表达式进行验证字符串是否由数字组成
if(s.matches("\\d+")){
System.out.println("正则验证字符串是由数字组成");
}
else{
System.out.println("正则验证字符串不是由数字组成");
}
}
}
Pattern类
• public final class Pattern extends Objectimplements Serializable
• 正则表达式的编译表示形式。指定为字符串的正则表达式必须首先被编译为此类的实例。
• 典型的调用顺序是
• Pattern p = Pattern.compile("a*b");
• Matcher m = p.matcher("aaaaab");
• boolean b = m.matches();
Matcher类
• public final class Matcher extends Object implements MatchResult
• Matcher类的主要功能是用于进行正则的匹配,通过Pattern类中定义完的正则,再使用Matcher类进行验证或者替换。
• 常用方法:
• boolean matches()
尝试将整个区域与模式匹配。
• String replaceAll(String replacement)
替换模式与给定替换字符串相匹配的
• 输入序列的每个子序列。
• String replaceFirst(String replacement)
替换模式与给定替换字符串匹配的
• 输入序列的第一个子序列。
String类对正则的支持
• 在JDK 1.4之后加入了正则,随后又更新了String的操作类,因为在使用正则中,所有的内容通过字符串表示的比较多。在String类中有以下的方法可以完成对正则的支持:
boolean matches(String regex)
告知此字符串是否匹配给定的正则表达式。
String replaceAll(String regex, String replacement)
使用给定的 replacement 替换此字符串
• 所有匹配给定的正则表达式的子字符串。
String replaceFirst(String regex, String replacement)
使用给定的 replacement 替换此字符串
• 匹配给定的正则表达式的
• 第一个子字符串。
String[] split(String regex)
根据给定正则表达式的
匹配拆分此字符串。
示例代码:
package com.vince.regex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexDemo2 {
public static void main(String[] args) {
//使用正则对字符串匹配分割
String info="三千年读史,不外功名利禄;九万里悟道,终归诗酒田园";
//生成一个匹配标点符号的正则(只能匹配英文标点符号)
//标点符号:!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
Pattern p=Pattern.compile("\\p{Punct}");
String[] str=p.split(info);
for (String s : str) {
System.out.println(s);
}
//使用正则匹配验证邮箱地址
String email="1509272975@qq.com";
//生成匹配邮箱地址的正则
Pattern p2=Pattern.compile("\\w+@\\w+.[a-zA-Z]+");
Matcher m=p2.matcher(email);
if(m.matches()){
System.out.println("邮箱地址匹配");
}
else{
System.out.println("邮箱地址不匹配");
}
//正则匹配替换
String date="2013/11/05";
Pattern p3=Pattern.compile("/");
Matcher m2=p3.matcher(date);
String s2=m2.replaceAll("-");
System.out.println(s2);
}
}
关键字词:javase,正则表达式