正则表达式可以方便的对数据进行匹配,可以执行更加复杂的字符串验证、拆分、替换等操作。 例如:现在要去判断一个字符串是否由数字组成,则可以有以下的两种做法 不使用正则表达式- public class T {
- public static void main(String[] args) {
- String str = "0123456789";
- boolean flag = true; //定义一个标记变量
- char c[] = str.toCharArray();
- for (int i = 0; i < c.length; i++) {
- if(c[i]<'0'||c[i]>'9'){
- flag = false;
- break;
- }
- }
- if(flag){
- System.out.println("是全部由数字组成");
- }else{
- System.out.println("不是全部由数字组成");
- }
-
- }
- }
复制代码 使用正则表达式- public class T {
- public static void main(String[] args) {
- String str = "0123456789";
- if(Pattern.compile("[0-9]+").matcher(str).matches()){
- System.out.println("是全部由数字组成");
- }else{
- System.out.println("不是全部由数字组成");
- }
- }
- }
复制代码 Pattern、Matcher类 这两个类为正则的核心操作类。这两个类都定义在java.util.regex包中. Pattern类的主要作用是进行正则规范(如之前的“【0-9】”就属于正则规范)的编写,而Matcher类主要是执行规范,验证一个字符串是否符合其规范。 \d:表示数字,【0-9】 \D:表示非数字,【^0-9】 \w:表示字母、数字、下划线,【a-zA-Z0-9】 \W:【^a-zA-Z0-9】 以上的正则,如果要想驱动起来,则必须依靠Pattern类和Matcher类 Pattern主要是表示一个规则的意思,即:正则表达式的规则需要在Pattern类中使用。 Matcher类主要表示使用Pattern指定好的验证规则。 在Pattern类中如果要想取得Pattern类实例,则必须调用compile()方法。 例:验证一个字符串是否是合法的日期格式。- public class T {
- public static void main(String[] args) {
- String str = "1990-04-13";
- String pattern = "\\d{4}-\\d{2}-\\d{2}";
- Pattern p = Pattern.compile(pattern); //实例化Pattern类
- Matcher m = p.matcher(str); //实例化Matcher类
- if(m.matches()){
- System.out.println("是合法日期格式");
- }else{
- System.out.println("不是合法日期格式");
- }
- }
- }
复制代码
|