Java:正则表达式

正则表达式

正则表达式(Regular Expression、regex),及描述某种规则的表达式。通常被用来检索、替换符合某个模式(规则)的文本
很多编程语言支持正则表达式,Java只是其中一种


正则表达式的基本元素

字符 含义 描述
.(点) 一个字符的通配符 能和回车符外的任何字符匹配匹配除“ ”和" "之外的任何单个字符。要匹配包括“ ”和" "在内的任何字符,请使用像“[sS]”的模式
[ ] 字符集 能和括号中描述的范围内任何一个字符匹配,‘-’连接范围的起止,闭区间
[ ^ ] 排斥性字符集 与上一项相反
^ 起始位置 定位到一行的起始处并向后匹配
$ 结束位置 定位到一行的结尾处并向前匹配
 单词边界 匹配[a-zA-Z_0-9]中的字符,及英文大小写字母与阿拉伯数字
B 非单词边界 [ ^ ]
s 空白符 相当于[ x0Bf ] // x0B空格符
w 单词字符 [B]
W 非单词字符 []
{n} 匹配次数 表明左边匹配符匹配n数
( ) 按照子表达式分组
转义 如 
| 逻辑或 a|b 匹配a或者b

常用等价 / 简写

? → {0,1}
* → {0,}
+ → {1,}
d → [0-9]
D → [^0-9]
[A,H,T,W] → A|H|T|W

//简写并非所有语言都支持


语法
正则表达式构成:字符{数量}位置

//基础语法  			 "^([]{})([]{})([]{})$"
//"开始([包含内容]{长度})([包含内容]{长度})([包含内容]{长度})结束"


记录一个问题

split使用正则表达式实现
String [] strings = new Scanner(System.in).nextLine().split("+");
提示dangling meta character问题出现
正确使用方式为
String [] strings = new Scanner(System.in).nextLine().split("\+");如同转义字符
String.replace()replaceAll()等等同理
其他正则字符以此类推

2018/8/2

原文地址:https://www.cnblogs.com/kafm/p/12721852.html