Baham's Blog

Above all else, guard your heart.

Java中的正则表达式(RegularExpression)

前一段时间,想处理点文件,将其中特定自负提取出来,于是就想到了Scanner对象中的useDelimiter()方法。可是对正则表达式了解不多,然后,就去图书馆找了些资料,有谷歌了一下,算是有一点了解了吧。

首先不得不说,正则表达式(Regular Expression)并非Java独有,Perl、PHP、Python、JavaScript和JScript均支持使用正则表达式。数据库检索、搜索引擎使用其实也会用到类似的知识。

特殊符号:

连字符-

-表示连续的关系,比如a-z表示,a,b,c……z。

句点.

. 是个通配符,例如,c.r表示car,cor,cbr,c4r,cfr等。

或|

| 表示 或 的关系,不像在Java代码中用“||”表示或,正则表达式中用|表示或。例如:c|r表示c或者r。

否^

不同于代码中,正则表达式使用^表示非,而不是!。

组()

()表示一组,具体请见后边的例子。

方括号[]

[]的用途不能用一个词来形容,但它也是一种或的关系,是一个或的范围。比如c[oiu]r

表示,cor,cir,cur。

反斜杠\

\表示一种引用的关系,比如\,-分别表示\和-,因为\和-都是特殊符号,无法直接在表达式中表示。

统计次数的符号

*表示0次或者多次

+表示一次或者多次

?表示0次或者1次

{n}表示n次

{n-m}表示n-m次

其他常用符号

\s   [\t\n\r\f]

\S   [^\t\n\r\f]

\d  [0-9]

\D   [^0-9]

\w    [A-Z0-9]

\W  [^A-Z0-9]

举例:正则表达式表示年月日

[0-9]{4}–[0-9]{2}–[0-9]{2}

分别表示 年-月-日,分别是4位、2位、及2位。




The Original Link: http://baham.github.io/08_15_429.html
If you want to reprint it, please do under the CC BY-NC-SA 4.0

Comments