网络编程 
首页 > 网络编程 > 浏览文章

半小时精通正则表达式-精华版

(编辑:jimmy 日期: 2024/11/18 浏览:3 次 )

虽然以前发不过不少的正则表达式教程,但这篇文章还是不错的,无废话都是比较实际的,前提就是需要你之前懂点正则表达式,要不还是先看些基本的正则表达式教程比较好。

-------------------------------------------------------------------------
^ 和 $ 分别用来匹配字符串的开始和结束 
-------------------------------------------------------------------------

例1 ^<b> 开头 一定要有"<b>"字符串; 
例2 </b>$ 结尾 一定要有"</b>" 的字符串; 
例3 ^abc$ 以abc开头和以abc结尾的字符串,实际上是只有abc匹配 
例4 abc 没符号就 匹配包含abc的字符串


-------------------------------------------------------------------------
* + 和 "a", "ab", "abb", "abbbbbbbbbbbbbbbbb", 无限...) 
{1,} = + 例2 ab{1,} 匹配以a开头后面B出现1-N次( "ab", "abb", "abbbbbbbbbbbbbbbbb", 无限...)
{0,1}= "a", "ab")
   例4 a{0,1}b+$ 匹配以0个或者1个a 再加上一个b结尾的字符串. ( "b", "ab")

注(2种写法)
ab{0,}也可以写成 ab*
ab{1,}也可以写成 ab+
ab{0,1}也可以写成 ab"abb"); 
例6 ab{2,} 要求a后面一定要有两个或者两个以上b 如("abb", "abbbb", 等.); 
例7 ab{3,5} 要求a后面可以有2-5个b("abbb", "abbbb", or "abbbbb"). 

(3)后面跟多个字符用()
例8 a(bc)* 匹配 a 后面跟0个或者一个"bc"; 当然你也可以写成"a(bc){0,}"
例9 a(bc){1,5} 匹配1个到5个 "bc." 

-------------------------------------------------------------------------
│  相当于OR 用来表示 1个或者 多个或者
-------------------------------------------------------------------------

例1 A│B 匹配含有"A" 或者 "B" 的 字符串; 
例2 (A│B)C 匹配含有 "AC" 或者 "BC"的字符串; 
例3 (A│B)*C 匹配含有(包括0-1个)a或b,后面跟一个c 

-------------------------------------------------------------------------
.  可以代表所有的单一字符
-------------------------------------------------------------------------
 . 不包括"\n"空格 如果有空格就用 但空格加一字符[\n.] 多个空格+1字符 [\n\n\n\n\n\n.]

例1 a.[0-9] 一个a 加一个字符 再加一个0到9的数字 
例2 ^.{3}$ 三个任意字符结尾 

-------------------------------------------------------------------------
'[ab]' 中括号括住的内容只匹配一个单一的字符 
-------------------------------------------------------------------------
 
例1 [ab]   匹配单个的 a 或者 b ( 和 "a│b" 一样); 
例2 [a-d]   匹配'a' 到'd'的单个字符 (和"a│b│c│d" 还有 "[abcd]"效果一样); 一般我们都用[a-zA-Z]来指定字符为一个大小写英文
例3 ^[a-zA-Z]  匹配以大小写字母开头的字符串 
例4 [0-9]%  匹配含有 形如 x% 的字符串 
例5 ,[a-zA-Z0-9]$ 匹配以逗号再加一个数字或字母结尾的字符串
例6 %[^a-zA-Z]% 匹配含有两个百分号里面有一个(非)字母的字符串. 

你也可以把你不想要得字符列在中括号里,你只需要在总括号里面使用'^' 

要点1:^[内容] ^在[]外开头,就表示以内容开头
要点2:[^内容] ^在[]里开头,就表示排除里面的内容(^非的意思)
要点3: 匹配含有这些字符的字符串. 在中括号里[*\+"/"和"^"字符之外的所有字符 
[^"'] //除了双引号(")和单引号(')之外的所有字符 

上一篇:MyEclipse删除网上复制下来的来代码带有的行号(正则去除行号)
下一篇:超全的js正则表达式整理笔记