欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java # 正则表达式的简单应用,常用的正则表达式

程序员文章站 2024-02-10 09:14:58
...

一、Java使用正则表达式

1. replaceAll() --- 去掉所有的特殊字符

String regEx = "[`[email protected]#$%^&*()+=|{}':;',//[//].<>/?!@#¥%……&*()——+|{}【】‘;:”“’。,、?]";
Pattern pattern = Pattern.compile(regEx);
Matcher matcher = pattern.matcher(str);
matcher.replaceAll("").trim();

 2. find() -- 匹配任意字符串中包含形如“@数字&”格式的子串

String st="看,墙面上的雕塑是什么?@322&大家一定猜到了,这是一个神经元。";
Pattern pattern = Pattern.compile("^(.*)@-?[1-9]\\d*&(.*)$"); //去掉空格符合换行符
Matcher matcher = pattern.matcher(st);
boolean result = matcher.find();

3.  检查字符串中是否存在指定字符

String text    = "there are many hotels " +"by amap.the adrr: http://xxxx pattern.";
String pattern = ".*http://.*";
boolean matches = Pattern.matches(pattern, text);//true则存在

4. Matcher 匹配指定格式的特殊字符串

Pattern pattern = Pattern.compile("[0-9]*");//判断是否都是数字
Matcher isNum = pattern.matcher("1123是数字");
if(isNum.matches()) {
    System.out.println("全部是数字");
} else {
    System.out.println("有汉字");
}

 

二、正则表达式相关

1. 常用预留字符

字符 说明
? 匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“does”或“does”中的“do
* 匹配前面的子表达式零次或多次。例如,zo*能匹配“z”以及“zoo
+ 匹配前面的子表达式一次或多次。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z
\ 转义字符
\d 匹配任意的数字  --->  [0-9]
\D 匹配任意非数字  --->  [^0-9]
\s 匹配任意空白符(空格、缩进、换行、回车)
\S 匹配任意非空白字符
\w 匹配任意单词
\W 匹配任意非单词
. 任意英文字母

 

2. [] 的用法

限定符 说明
[a-z] 匹配 a -- z 中的任一字符,[abc]匹配 a 或 b 或 c
[0-9] 匹配 0 -- 9 中的任一个数字字符
[0-9A-Z] 匹配 0 -- 9 或 A -- Z范围中一个字符
[abc] 匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”中的“a
[^abc] 匹配不是 a, b, c 的字符
[a-z&&[^m-p]] 匹配 a -- z 之间的所有字符,但是不包括 m -- p 之间的字符

 

3. 边界匹配

边界符 说明
^ 匹配开头
$ 匹配结尾
\b 匹配单词边界
\B 匹配非单词边界
\A 匹配文本开头
\G 匹配前一匹配项结尾
\Z 输入的结尾,仅用于最后的结束符(如果有的话)
\z 匹配文本结尾

 

4. 逻辑操作符

 操作是默认的, abc,意味着 a 与 b 与 c

或 | 操作,abc|yz,意味着 abc 或者 yz

 

5. 量词表示

字符 说明
a{n} 匹配 n 次 a 字符
a{n,} 匹配最少 n 次 a 字符
a{n, m} 匹配最少 n 次,最多 m 次 a 字符

 

6. 常用的正则表达式

说明 对应的正则表达式
用户名(3到16位) /^[a-z0-9_-]{3,16}$/
密码(6到18位) /^[a-z0-9_-]{6,18}$/
十六进制值 /^#?([a-f0-9]{6}|[a-f0-9]{3})$/
电子邮箱 /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/
URL /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/
IP 地址 /((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
HTML 标签 /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/
删除代码\\注释 (?<!http:|\S)//.*$
Unicode编码中的汉字范围 /^[\u2E80-\u9FFF]+$/