Java正则常用规则整理说明
来源:互联网 发布:广东干部网络培训登陆 编辑:程序博客网 时间:2024/05/21 19:41
正则表达式通常用于处理字符串,主要功能是 校验(match)、分割(split)、替换(ReplaceAll)、查找(find)。
1 常用符号说明
(1) 常用字符
\ 转义字符
| 或
\d 数字:[0-9]
\w 单词字符:[a-zA-Z_0-9]
^ 行的开头
$ 行的结尾
\b 单词边界(指两个单词间的空格部分)
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
(X) X,作为捕获组
(2)数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
\ 转义字符
| 或
\d 数字:[0-9]
\w 单词字符:[a-zA-Z_0-9]
^ 行的开头
$ 行的结尾
\b 单词边界(指两个单词间的空格部分)
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
(X) X,作为捕获组
(2)数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
组说明:组零始终代表整个表达式, 从左到右,按左括号序号对应组号。$1表示组1匹配的内容
2 简单案例
(1)校验(match) 校验手机号码 ①11位数字 ②第二位必须是3或5或8
<span style="white-space:pre"></span>public static void match_demo(){<span style="white-space:pre"></span>//校验手机号码 ①11位数字 ②第二位必须是3或5或8<span style="white-space:pre"></span>String phoneNum ="13565557890";<span style="white-space:pre"></span>System.out.print(phoneNum.matches("1[358]\\d{9}"));<span style="white-space:pre"></span>}运行结果: true
(2)替换(replaceAll) 格式化句子,将多个空格替换为一个空格
<span style="white-space:pre"></span>public static void replace_demo(){//格式化句子,将多个空格替换为一个空格String str = "I like Tom, but tom like Lucy!";System.out.println(str.replaceAll(" +", " "));}运行结果: I like Tom, but tom like Lucy!
(3)分割(split) 分割出所有单词,按符号分,按可能多个空格分割
<span style="white-space:pre"></span>public static void split_dome(){//分割出所有单词,按符号分,按可能多个空格分割String str = "I like Tom,but tom like Lucy!";String[] strs = str.split(" +|,|!");for(String s : strs){System.out.println(s);}}
运行结果:
I
like
Tom
but
tom
like
Lucy
like
Tom
but
tom
like
Lucy
(4)查找
<span style="white-space:pre"></span>public static void find_demo(){//在句子中查找三个字符的单词String str = "Iii like Tom,but tom like Lucy!";String regex = "\\b[a-zA-z]{3}\\b";Pattern p = Pattern.compile(regex);Matcher m = p.matcher(str);while(m.find()){System.out.println(m.group() + " ;位置索引 " + m.start()+" : "+m.end());}}
Iii ;位置索引 0 : 3
Tom ;位置索引 12 : 15
but ;位置索引 16 : 19
tom ;位置索引 21 : 24
Tom ;位置索引 12 : 15
but ;位置索引 16 : 19
tom ;位置索引 21 : 24
3 附 组的相关例子
1 将句子还原成正常句子
<span style="white-space:pre"></span>public static void dome1(){String str = "我我我...我我我我我......我我我我我我爱.......爱爱爱爱爱爱爱...爱学学学学学学学编编....编编编编编编程..程程程程程...程程程";System.out.println(str.replaceAll("\\.+", "").replaceAll("(.)\\1+", "$1"));}
运行结果:
我爱学编程
2 将IP地址排序
<span style="white-space:pre"></span>public static void dome2(){String ip_str = "192.168.10.34 127.0.0.1 3.3.3.3 105.70.11.55";String temp1 = ip_str.replaceAll("(\\d+)", "00$1");String temp2 = temp1.replaceAll("0*(\\d{3})", "$1");String[] strs = temp2.split(" +");TreeSet<String> set = new TreeSet<String>();for(String s : strs){set.add(s);}for(String string : set){System.out.println(string.replaceAll("0*(\\d+)", "$1"));}}
运行结果:
3.3.3.3
105.70.11.55
127.0.0.1
192.168.10.34
105.70.11.55
127.0.0.1
192.168.10.34
0 0
- Java正则常用规则整理说明
- 常用正则表达式规则例子整理
- 常用的正则表达式规则整理
- htaccess 正则规则整理
- Java的SimpleDateFormat常用方法说明整理
- Java的SimpleDateFormat常用方法说明整理
- Java的SimpleDateFormat常用方法说明整理
- 常用正则表达式规则
- 正则表达式常用规则
- 常用的正则规则
- 正则常用符号说明
- [整理]常用正则表达式
- 常用正则表达式整理
- 常用正则表达式整理
- 常用正则表达式整理
- 常用正则表达式整理
- 常用正则表达式整理
- 常用正则表达式整理
- @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
- HDOJ/HDU 1161 Eddy's mistakes(大写字母转换成小写字母)
- 在Ubuntu 14.04 64bit上安装OpenResty 1.9.7.4
- Android的setVisibility(View.GONE)无效的问题及原因分析
- Python list vs set
- Java正则常用规则整理说明
- jquery ui 的 tabs 祛除蓝色高亮边框
- Java设计模式——策略模式
- .net自定义错误页
- Oracle 下载(Oracle10g下载地址--多平台下的32位和64位 )
- Vim命令合集
- LinuxC/C++编程(7)—守护进程
- 154. Find Minimum in Rotated Sorted Array II
- iOS swift 创建各种变量,常量,字典,数组等