神奇的perl-正则表达式(1)

声明:本神奇的Perl系列为刘兴(http://deepfuture.iteye.com/)原创,未经笔者授权,任何人和机构不能转载

第五章 正则表达式

1. PERL正则基础
正则表达式是一种序列或字符模式,负责在搜索和替换文本时对文本内容进行字符串匹配。Perl中的正则表达式由待匹配字符串或模式串或2者混合而成,一般以斜杠(/)作为定界符。
 Perl正则模式串主要有以下几种:
. 匹配单个除换行符以外的字符
a? 匹配 0 次或一次 a 字符(a为任意字符,如:a*、b*、2*等)
a* 匹配 0 次或多次 a 字符(a为任意字符,如:a*、b*、2*等)
a+ 匹配 1 次或多次 a 字符(a为任意字符,如:a+、b+、2+等)
.* 匹配 0 次或一次的任何字符
.+ 匹配 1 次或多次的任何字符
{m} 匹配刚好是 m 个 的指定字符
{m,n} 匹配在 m个 以上 n个 以下 的指定字符
{m,} 匹配 m个 以上 的指定字符

[] 匹配符合 [] 内的字符

[^] 匹配不符合 [] 内的字符

(x|y) 匹配xy

(x) 匹配x模式串

[0-9] 匹配单个数字

[a-z] 匹配单个小写字母

[^0-9] 匹配单个非数字字符

[^a-z] 匹配单个非小写字母字符

^ 匹配字符开头的字符

$ 匹配字符结尾的字符

\d 匹配单个数字的字符,和 [0-9] 语法一样

\d+ 匹配多个数字字符,和 [0-9]+ 语法一样

\D 单个非数字字符

\D+ 匹配多个非数字字符

\w 单个英文字母或数字的字符,

\W 单个非英文字母或数字的字符

\W+ 匹配多个非英文字母或数字字符

\s 空格等同于 [ \n\t\r\f]

\s+ 等同于  [ \n\t\r\f]+ 

\S  单个非空格字符

\S+ 多个非空格字符

 

我们来看几个例子:

/abc/ 匹配所有包括abc的字符串,比如,匹配“123abcxxx”、“abcde”。

/ab(c|d)/ 匹配所有包括abcabd的字符串,比如,匹配“123abcxxx”、“abde88
/abc\d+/ 匹配所有包括abc后接至少一个数字的字符串,比如,匹配“xxabc456”、 “abc678de”。
/^abc\d+/ 匹配所有以abc后接至少一个数字开头的字符串,比如,匹配“abc456”、 “abc678de”,不匹配“xxabc456”、 “xxbc456”。
/^abc\d+$/ 匹配所有以abc开头,至少一个数字结尾,且abc后接至少一个数字的字符串,换句话说,仅匹配符合abc后接至少一个数字,不包括任何其它字符。比如,匹配“abc456”、 “abc1”,不匹配“abc456x”、 “bc456”、“abc”。
/[^0-9]abc\d+/ 匹配所有包括非数字字符后接abc及至少一个数字的字符串,比如,匹配“xyabc456”、 “aabc1”,不匹配“456abc98”、 “bdc456”、“0abc1”。
/^[^0-9]abc\d+/ 匹配所有以非数字字符后接abc及至少一个数字的形式开头的字符串,比如,匹配“aabc456”、 “xabc1you”,不匹配“8abc98ww”、 “bd456”、“0abc1”。

你可能感兴趣的:(正则表达式,F#,perl)