@ A*
匹配
=F =FF =F<
匹配一个或零个 =
=B =BF =B<
匹配零或多个 =
=< =<F =<<
匹配一个或多个 =
=GH =GHF =GH<
匹配正好 个 =
=G6H =G6HF =G6H<
匹配至少 个 =
=G6EH =G6EHF =G6EH<
匹配至少 个,至多 E 个 =
再提醒一下,要想让表达式照你的意思去运行,你应该用括号把I=I括起来。比方说:
似 乎 这 个 表 达 式 能 匹 配 一 个 或 若 干 个 I+*I , 但 是 如 果 你 真 的 用 它 去 匹
配I+*+*+*I的话,实际上只会找到三个字符。因为这个表达式的意思是I+I后边跟着
一个或多个I*I。要想匹配一个或多个完整的I+*I,你应该这样:
正则表达式能轻而易举地把你给耍了;这是一种建立在 之上的新语言。
定 义 了 一 个 新 的 接 口 , 叫 JC* 。 它 提 供 了 和
这两个类的字符序列的抽象:
,*JC*G
*4K
K
+C*6K
K
H
为了实现这个新的 JC* 接口,, 以及 J
都作了修改。很多正则表达式的操作都要拿 JC* 作参数。
和
先给一个例子。下面这段程序可以测试正则表达式是否匹配字符串。第一个参数是要
匹配的字符串,后面是正则表达式。正则表达式可以有多个。在 $L 环境下,命
令行下的正则表达式还必须用引号。
当你创建正则表达式时,可以用这个程序来判断它是不是会按照你的要求工作。
$$4.
$$G4M+*+*+*,+*;+*<;;+*<;;+*GN6H;H
E.&BK
.+**!A-.G
.+**E/0G
,ONG
E.;M'; < ;&
!A-.;
<;**C*-.<;K
E)K
H
E.;#.M';;</)0<;';;K
,PKOK<<G
E.;A.M';;</0<;';;K
.P*E./0K
)