正则表达式功能以及应用
正则表达式,就是用某种模式去匹配一类字符串的一个公式,正则表达式由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义,不管是.Net平台还是Java平台,正则表达式表达的意思都是一样的,下面我们主要分析Java正则表达式中的功能和具体应用,希望文章对您有所帮助,仅供参考。 自从jdk1.4推出java.util.regex包,就为我们提供了很好的Java正则表达式应用平台,因为Java正则表达式是一个很庞杂的体系。 反斜杠 ^为限制开头 加入特定限制条件「[]」 []中加入^后加再次限制条件「[^]」 在限制条件为特定字符出现0次以上时,可以使用「*」 在限制条件为特定字符出现1次以上时,可以使用「+」 在限制条件为特定字符出现有0或1次以上时,可以使用「?」 限制为连续出现指定次数字符「{a}」 在使用Pattern.compile函数时,可以加入控制Java正则表达式的匹配行为的参数: flag的取值范围如下: Pattern.CANON_EQ 当且仅当两个字符的"正规分解(canonical decomposition)"都完全相同的情况下,才认定匹配。比如用了这个标志之后,表达式"au030A"会匹配"?"。默认情况下,不考虑"规 范相等性(canonical equivalence)"。 Pattern.CASE_INSENSITIVE(?i) 默认情况下,大小写不明感的匹配只适用于US-ASCII字符集。这个标志能让表达式忽略大小写进行匹配。要想对Unicode字符进行大小不明感的匹 配,只要将UNICODE_CASE与这个标志合起来就行了。 Pattern.COMMENTS(?x) 在这种模式下,匹配时会忽略Java正则表达式里的空格字符(译者注:不是指表达式里的"s",而是指表达式里的空格,tab,回车之类)。注释从#开始,一直到这行结束。可以通过嵌入式的标志来启用Unix行模式。 Pattern.DOTALL(?s) 在这种模式下,表达式'.'可以匹配任意字符,包括表示一行的结束符。默认情况下,表达式'.'不匹配行的结束符。 Pattern.MULTILINE(?m) 在这种模式下,'^'和'$'分别匹配一行的开始和结束。此外,'^'仍然匹配字符串的开始,'$'也匹配字符串的结束。默认情况下,这两个表达式仅仅匹配字符串的开始和结束。 Pattern.UNICODE_CASE(?u) 在这个模式下,如果你还启用了CASE_INSENSITIVE标志,那么它会对Unicode字符进行大小写不明感的匹配。默认情况下,大小写不敏感的匹配只适用于US-ASCII字符集。 Pattern.UNIX_LINES(?d) 在这个模式下,只有'n'才被认作一行的中止,并且与'.','^',以及'$'进行匹配。抛开空泛的概念,下面写出几个简单的Java正则用例: ◆比如,在字符串包含验证时
代码
◆以多条件分割字符串时
Pattern pattern
=
Pattern.compile(
"
[,|]+
"
);String[] strs
=
pattern.split(
"
Java Hello World Java,Hello,World|Sun
"
);
for
(
int
i
=
0
;i
<
strs.length;i
++
) { System.out.println(strs[i]);}
◆文字替换(首次出现字符)
Pattern pattern
=
Pattern.compile(
"Java
正则表达式
"
); ◆文字替换(全部) Pattern pattern = Pattern.compile( "Java 正则表达式 " );Matcher matcher = pattern.matcher( "Java 正则表达式 Hello World,正则表达式 Hello World " ); System.out.println(matcher.replaceAll( " Java " )); ◆文字替换(置换字符) ◆验证是否为邮箱地址 ◆去除html标记 ◆查找html中对应条件字符串
Pattern pattern
=
Pattern.compile(
"
href=
"
(.
+?
)
""
); ◆截取http://地址
Java正则表达式的功用还有很多,事实上只要是字符处理,就没有正则做不到的事情存在。 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kdnuggets/archive/2008/06/09/2526588.aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |