JavaSE基础正则表达式
2017-11-09 10:01
344 查看
正则表达式常用的语法
A:字符x | 字符 x :任意的字符 |
\\ | 反斜线字符 在代码中书写正则表达式:\------>用两个\\代表一个反斜线 |
\t | 制表符 ('\u0009') |
\n | 新行(换行)符 ('\u000A') IO流中要写入换行符号:windows "\r\n" |
\r | 回车符 ('\u000D') |
[abc] | a、b 或 c(简单类) |
[^abc] | 任何字符,除了 a、b 或 c(否定) |
[a-zA-Z] | a 到 z 或 A 到 Z,两头的字母包括在内(范围) 当前字母大小均可 |
任何字符 | 邮箱里面:如果本身就是.,那么在写正在表达式的时候,\.将当前.转义 |
\d | 数字:[0-9] \d在正则表达式应用的时候:[0-9]--->\\d |
\w | 单词字符:[a-zA-Z_0-9]:简单一些字符串,单词字符(规则:数字或者字母) javascript:[a-zA-Z0-9] |
D:边界匹配器
^ | 行的开头 |
$ | 行的结尾 |
\b | 单词边界 : hello;world:haha:xixi |
X? | X,一次或一次也没有 |
X* | X,零次或多次 |
X+ | X,一次或多次 |
X{n} | X,恰好 n 次 |
X{n,} | X,至少 n 次 |
X{n,m} | X,至少 n 次,但是不超过 m 次 |
/** * */ package org.zst.regex; import java.util.*; /**邮箱校验 * @author:zsyht * @date:2017-11-9上午9:08:01 */ public class Demo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请输入一个邮箱地址:"); String email = sc.nextLine(); //定义正则规则 String regex ="[a-zA-Z_0-9]+@[a-zA-Z_0-9]{2,8}(\\.[a-zA-Z]{2,3})+"; boolean flag = email.matches(regex); System.out.println("校验结果:"+flag); } }
String的分割功能
public String[] split(String regex):给定正则表达式的匹配拆分此字符串,返回值类型是一个字符串数组类型
/** * */ package org.zst.regex; import java.util.Scanner; /** * @author:zsyht * @date:2017-11-9上午10:17:41 */ public class Demo2 { public static void main(String[] args) { // 定义一个字符串 String ages = "18-22"; // 定义正则规则 String regex = "-"; //返回字符串数组 String[] strArray = ages.split(regex); // 如何得到当前字符数组中的元素(转换int类型的数据) int startAge = Integer.parseInt(strArray[0]); int endAge = Integer.parseInt(strArray[1]); // 键盘录入一个年龄 4000 ,属于int类型的数据 Scanner sc = new Scanner(System.in); System.out.print("请您输入一个年龄:"); int age = sc.nextInt(); // 判断是否符合要求 if (age >= startAge && age <= endAge) { System.out.println("年龄符合"); } else { System.out.println("年龄不符合"); } } }
/** * */ package org.zst.regex; /** * @author:zsyht * @date:2017-11-9上午10:31:01 */ public class Demo3 { public static void main(String[] args) { String str1 = "aa,bb,cc" ; //使用分割功能 String[] strArray1 = str1.split(",") ; //遍历字符串数组 for(int x = 0 ; x < strArray1.length; x ++){ System.out.print(strArray1[x]+" "); } System.out.println(); String str2 = "aa bb cc" ; //使用切割功能: String[] strArray2 = str2.split(" +") ; //空格拼接+,表示空格多次出现 for(int x = 0 ; x <strArray2.length ; x++){ System.out.print(strArray2[x]+" "); } System.out.println(); String str3 = "aa.bb.cc" ; //分割功能 String[] strArray3 = str3.split("\\.") ; for(int x =0 ; x<strArray3.length ; x ++){ System.out.print(strArray3[x]+" "); } System.out.println(); //硬盘上的路径表现形式:用两个反斜线代表一个反斜线 //D:\360驱动大师目录 String str4 = "D:\\360驱动大师目录" ; //使用分割功能 String[] strArray4 = str4.split("\\\\") ; for(int x = 0 ; x <strArray4.length ; x ++){ System.out.print(strArray4[x]+" "); } } }
关于模式和匹配器的使用:关于模式和匹配器的使用:获取功能
模式和匹配器基本使用顺序
/** * */ package org.zst.regex; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @author:zsyht * @date:2017-11-9上午10:51:46 */ public class Demo4 { public static void main(String[] args) { //public static Pattern compile(String regex)将给定的正则表达式编译成一个模式对象 //1)获取模式对象(通过正则规则) Pattern p = Pattern.compile("a*b") ; //2)通过模式获取匹配器对象,(将一个字符串类型的数据) Matcher m = p.matcher("aaaaaab") ; //3)调用Match(匹配器类)中的:public boolean matches():判断当前用户录入的字符串是否和当前的正则规则匹配 boolean flag = m.matches() ; System.out.println("flag:"+flag); System.out.println("----------------------------"); //上述写法麻烦,要获取模式对象Pattern还要获取匹配器对象:Matcher,然后通过matches()方法返回一个结果 //定义一个正则规则 String regex = "a*b" ; //指定某一个字符串 String str = "aaaaaaab" ; //使用当前给定的字符串调用public boolean matchers(String regex) boolean flag2 = str.matches(regex) ; System.out.println("flag2: "+flag2); } }
相关文章推荐
- JavaSe基础XX22——正则表达式
- JavaSE基础:正则表达式
- 黑马程序员_JavaSE基础知识总结十九:正则表达式初步
- 黑马程序员——javase基础--正则表达式
- 黑马程序员_java基础之正则表达式及API(StringBuffer和其它常用类)
- Java基础之一组有用的类——使用正则表达式查找和替换(SearchAndReplace)
- URL(基础一) UrlRewrite正则表达式匹配、配置实例和分析
- shell编程之正则表达式基础
- Python零基础入门二十四之正则表达式知识补充
- 正则表达式基础知识
- 黑马程序员_java基础笔记(08)...GUI,网络编程,正则表达式
- 整理正则表达式基础理论(二)
- 基础学习总结之正则表达式
- 正则表达式基础
- 正则表达式的一些用法很基础的哦
- 基础知识 - Golang 中的正则表达式
- Matlab 正则表达式零基础起步教程
- java基础11:正则表达式与反射
- Java基础_正则表达式
- JAVA正则表达式基础入门