首页 > 代码库 > 正则表达式

正则表达式

Regular Expression 正则表达式
一种约束字符串的语法规则.多种编程语言都支持.
Java对正则的支持.Patterm/Matcher/String.
主要的元字符: . \ + - * & | $ ? () [] {}
public static boolean matches(regex,str)
regex为正则表达式.str为需要判断的对象.

重复匹配
x{n} x{n,} x{n,m} x*=x{0,} x+=x{1,} x?=x{0,1}

选择匹配
a|b|c 匹配a或者b或者c a|b|c与[abc]的区别
[abc] / [^abc] / [-]范围匹配 都匹配一个字符.
[\\\\] "\\"

字符类
\w 一个字符.Java中不能匹配中文. \W一个非\w字符.
\d \D一个数字与非数字字符 // \s \S 一个空白和非空白字符

Matcher类
Matcher matcher = Pattern.compile(regex).matcher(str);
while (matcher.find())//str中与regex匹配的子字符串是否存在
{ System.out.println(matcher.group());}//若有则按顺序取出来.

贪婪匹配和非贪婪匹配
"[1-9][0-9]{4,}" //尽可能多的匹配 "[1-9][0-9]{4,}?" 相当于匹
配"[1-9][0-9]{4}"加?就只要满足5个就取值了非贪婪匹配.

String支持正则的操作方法.
String str=newString;
str.split(regex)//以符合这个正则表达式的字符串来进行分割
str.replaceAll(regex,str2) 用str2来全部替换str中的符合正则表达式
的字符串.
str.matches(regex)/boolean b=Pattern.matches(regex,str);

位置匹配
^ 文本开始 $文本结束 \\bstr\\b 则取出str\b表示单词边界.


(a|b)c/ac|bc (abc)d\1/abcdabc

Java里面使用
Pattern.CASS_INSENSITIVE常量表示正则表达式里的 i大小写不敏感
Pattern.MULTILINE 表示正则表达式里的 m 多行匹配

正则表达式