【Java基础14_1】正则表达式
2017-10-15 19:21
429 查看
概念
正则表达式即正确的规则,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。
原始方法校验
需求:校验QQ号码
要求必须是 5-15位 数字
0 不能开头
使用正则表达式校验
作用
可以简化我们的开发
不仅Java可以用,C、C++或者js、php都支持正则表达式
组成规则
规则字符在javautil.regex Pattern中
字符
x 字符 x。举例:’a’表示字符a
\\ 反斜线字符。
\n 新行(换行)符 (‘\u000A’)
\r 回车符 (‘\u000D’)
字符类
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围)
[0-9] 0到9的字符都包括在内
预定义字符类
. 任何字符。我的就是.字符本身,怎么表示呢? .
\d 数字:[0-9]
\w 单词字符:[a-zA-Z_0-9]
在正则表达式里面组成单词的东西必须有这些东西组成
边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界
就是不是单词字符的地方。
举例:hello world?haha;xixi
Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
正则表达式的判断功能
Demo1
需求:简单地判断手机号是否满足规则
Demo2
需求:校验邮箱
正则表达式的分割功能
分割以下字符串:
年龄范围”18-24”
“ab cd ef”
“ab cd ef”
“ab cd-ef”
“ab.cd.ef”
“E://study//day01//a.txt”
给定字符串中的数字排序
需求:有如下一个字符串:”91 27 46 38 50”,请写代码实现最终输出结果是:”27 38 46 50 91”
正则表达式的替换功能
String类的功能:public String replaceAll ( String regex , String replacement )
正则表达式即正确的规则,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。
原始方法校验
需求:校验QQ号码
要求必须是 5-15位 数字
0 不能开头
import java.util.Scanner; //使用原始的做法完成校验QQ号码 public class RefexDemo { public static void main (String[] args) { //获取键盘录入的QQ号码 Scanner sc = new Scanner(System.in); //友情提示 System.out.println("请输入QQ号码:"); String qqStr = sc.nextLine(); boolean flag = checkQQ(qqStr); } private static boolean checkQQ(String qqStr){ //定义一个变量用来记录校验的结果 boolean flag = flase; int length = qqStr.length(); if(length >= 5 && length <= 15){ //满足长度 //判断是否满足不以0开头 char firstChar = qqStr.charAt(0); if(firstChar == '0'){ //说明是以0开头,就不满足条件 flag = false; }else { //不以0开头 //再去判断是不是数组 for (int i = 0; i < length; i++) { char ch = qqStr.charAt(i); if(ch >= '0' && ch <='9') { flag = true; // continue; }else { flag = false; break; } } } }else{ //不满足长度 flag = false; } } }
使用正则表达式校验
private static boolean checkQQByRegex(String QQStr){ String regex = "[0-9] [1-9] {4-14}"; }
作用
可以简化我们的开发
不仅Java可以用,C、C++或者js、php都支持正则表达式
组成规则
规则字符在javautil.regex Pattern中
字符
x 字符 x。举例:’a’表示字符a
\\ 反斜线字符。
\n 新行(换行)符 (‘\u000A’)
\r 回车符 (‘\u000D’)
字符类
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围)
[0-9] 0到9的字符都包括在内
预定义字符类
. 任何字符。我的就是.字符本身,怎么表示呢? .
\d 数字:[0-9]
\w 单词字符:[a-zA-Z_0-9]
在正则表达式里面组成单词的东西必须有这些东西组成
边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界
就是不是单词字符的地方。
举例:hello world?haha;xixi
Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
正则表达式的判断功能
public boolean matches(String regex)
Demo1
需求:简单地判断手机号是否满足规则
Demo2
需求:校验邮箱
正则表达式的分割功能
public boolean matches(String regex)
分割以下字符串:
年龄范围”18-24”
“ab cd ef”
“ab cd ef”
“ab cd-ef”
“ab.cd.ef”
“E://study//day01//a.txt”
给定字符串中的数字排序
需求:有如下一个字符串:”91 27 46 38 50”,请写代码实现最终输出结果是:”27 38 46 50 91”
正则表达式的替换功能
String类的功能:public String replaceAll ( String regex , String replacement )
相关文章推荐
- Java基础-14总结正则表达式,Pattern,Mactcher,Math,BigInteger,BigDeximal,System等
- Java基础14----正则表达式、Math类、System类、BigInteger、日期类
- Java基础-14总结正则表达式,Pattern,Mactcher,Math,BigInteger,BigDeximal,System等
- 黑马程序员-Java基础总结14——正则表达式
- Java正则表达式基础入门知识
- java基础之 正则表达式
- 数据库笔记14:Java正则表达式
- 黑马程序员——Java基础---正则表达式
- Java基础知识强化74:正则表达式之分割功能 (扩展练习)
- Java基础知识强化78:正则表达式之获取功能(案例)
- Java基础_正则表达式
- $Java正则表达式基础整理
- 黑马程序员——Java 基础 正则表达式(复习)
- Java基础---Java---正则表达式-----匹配、切割、替换、获取等方法
- 黑马程序员-----java基础 正则表达式
- Java基础 正则表达式
- 黑马程序员_java基础笔记(08)...GUI,网络编程,正则表达式
- java基础---->java中正则表达式二
- Java基础:正则表达式
- 黑马程序员——Java基础:反射、JDK1.5新特性、正则表达式