Java:正则表达式

正则表达式

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


正则表达式的基本元素

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

posted @ 2018-08-04 09:47  kafm  阅读(67)  评论(0编辑  收藏  举报