前一段时间,想处理点文件,将其中特定自负提取出来,于是就想到了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