-
java
正则表达式中的数量词
java
中的正则位于
包中
,
这个包中只有一个
MatchResult
< br>接口
和
Matcher
、
Pattern
两个类。正则中的数量词有
G
reedy
(
贪婪
)
、
Reluctant(
懒惰
)
和
Possessive(
强占
p>
)
三种。
Greedy
数量词:
X ?---X
,一次或一次也没有。
X*---X
,零次或多次。
X+---X
,一次或多次。
X{n}---X
,恰好
n
< br>次。
X{n,}---X
,至
少
n
次。
X
{n,m}---X
,至少
n
次,但是
不超过
m
次。
Greedy
是最常用的,它的匹配方式是先把整个字符串吞下,然后匹配整个字符<
/p>
串,如果不匹配,就从右端吐出一个字符,再进行匹配,直到找到匹配或把整个
字符串吐完为止。
Matcher
m=e(
while(()){
n(());
}
输出:
a====b=========b
因为总是从最大匹配开始匹配,故称贪婪。
Reluctant
数量词:
X??---
X
,一次或一次也没有。
X*?--- X
,零次或多次。
X+?--- X
,一次或多次。
X{n}?--- X
,恰好
n
次。
X{n,}?--- X
,至少
n
次。
X{n,m}?--- X
,至少
n<
/p>
次,但是不超过
m
次。
< br>
Reluctant
正好和
G
reedy
相反,它先从最小匹配开始,先从左端吞入一个字符,
然后进行匹配,
若不匹配就再吞入一个字符,
直到找到匹配或
将整个字符串吞入
为止。
Matcher m=e(
while(()){
n(());
}
输出: