正则表达式的基本语法

    首先让我们看两个特殊的符号 '^' '$' 。他们的作用是分别指出一个字符串的开始和结束。例子如下:

" ^The " :表示所有以 " The " 开始的字符串( " There " " The cat " 等);
" of despair$ " :表示所以以 " of despair " 结尾的字符串;
" ^abc$ " :表示开始和结尾都是 " abc " 的字符串——呵呵,只有 " abc " 自己了;
" notice " :表示任何包含 " notice " 的字符串。

  像象最后那个例子,如果你不使用两个特殊字符,你就在表示要查找的串在被查找串的任意部分 —— 你并不把它定位在某一个顶端。
  其它还有 '*' '+' '?' 这三个符号,表示一个或一序列字符重复出现的次数。它们分别表示 没有或更多 一次或更多 还有 没有或一次 。下面是几个例子:

" ab* " :表示一个字符串有一个a后面跟着零个或若干个b。( " a " " ab " " abbb " ,……);
" ab+ " :表示一个字符串有一个a后面跟着至少一个b或者更多;
" ab? " :表示一个字符串有一个a后面跟着零个或者一个b;
" a?b+$ " :表示在字符串的末尾有零个或一个a跟着一个或几个b。

你也可以使用范围,用大括号括起,用以表示重复次数的范围。
"ab{2}" :表示一个字符串有一个 a 跟着 2 b "abb" );
"ab{2,}"
:表示一个字符串有一个 a 跟着至少 2 b
"ab{3,5}"
:表示一个字符串有一个 a 跟着 3 5 b

请注意,你必须指定范围的下限(如:"{0,2}"而不是"{,2}")。还有,你可能注意到了,'*''+''?'相当于"{0,}""{1,}""{0,1}"

  还有一个'|',表示操作:

hi|hello" :表示一个字符串里有 "hi" 或者 "hello"
"(b|cd)ef"
:表示 "bef" "cdef"
"(a|b)*c"
:表示一串 "a""b" 混合的字符串后面跟一个 "c"

'.'
可以替代任何字符:

"a.[0-9]"
:表示一个字符串有一个 "a" 后面跟着一个任意字符和一个数字;
"^.{3}$"
:表示有任意三个字符的字符串(长度为 3 个字符);

方括号表示某些字符允许在一个字符串中的某一特定位置出现:


"[ab]" :表示一个字符串有一个 "a" "b" (相当于 "a|b" );
"[a-d]"
:表示一个字符串包含小写的 'a' 'd' 中的一个(相当于 "a|b|c|d" 或者 "[abcd]" );
"^[a-zA-Z]"
:表示一个以字母开头的字符串;
"[0-9]%"
:表示一个百分号前有一位的数字;
",[a-zA-Z0-9]$"
:表示一个字符串以一个逗号后面跟着一个字母或数字结束。

你也可以在方括号里用'^'表示不希望出现的字符,'^'应在方括号里的第一位。(如:"%[^a-zA-Z]%"表示两个百分号中不应该出现字母)。为了逐字表达,你必须在"^.$()|*+?{/"这些字符前加上转移字符'/'
请注意在方括号中,不需要转义字符。

各种操作符的运算优先级。 相同优先级的从左到右进行运算,不同优先级的运算先高后低。各种操作符的优先级从高到低如下:

操作符

描述

/

转义符

(), (?:), (?=), []

圆括号和方括号

*, +, ?, {n}, {n,}, {n,m}

限定符

^, $, /anymetacharacter

位置和顺序

|

操作



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值