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

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

本文主要介绍正则表达式的半小时掌握——精华版,有需要的朋友可以参考一下。

虽然之前没贴多少正则表达式教程,但是这篇文章还是不错的。很实用,没有任何废话。前提是你之前需要了解一些正则表达式,或者先看一些基本的正则表达式教程比较好。

-

和$分别用于匹配字符串的开头和结尾。

-

例1 ^b必须有一个 b 字符串开头;

2 /b$结尾必须有一个字符串“/b”;

例3 abc $以abc开头、以abc结尾的字符串实际上只匹配abc。

示例4 abc匹配包含abc但没有符号的字符串

-

*然后呢?用于表示字符出现的次数或顺序。它们分别表示

-

{0,}=*例1 ab{0,}匹配从a开始然后b出现O-N次( a , ab , abb , a bbbbbbbbbbbbbb ,无限.)

{1,}=示例2 ab{1,}匹配从A开始,后面跟着B,进行1-N次( ab , ABB , A BBBBBBBBBBBB ,无限制.)

{0,1}=?例3 ab{0,1}匹配以a开头,然后b出现O-1次( a , ab )。

示例4 a{0,1}b $匹配以0或1 A加a B结尾的字符串( b , ab )

注意(两种写法)

Ab{0,}也可以写成ab*

Ab{1,}也可以写成Ab

Ab{0,1}也可以写成Ab?

A{0,1}b $也可以写成a?乙美元

(1)1分, * ,和?只要控制前面的字符出现的次数就可以了。

2 {N,N}多少次{0}次

3{}这不能是负数。

(2)次数可以修改。

例5 ab{2}要求A后面必须跟两个B(一个都不能少)如( abb );

例6 ab{2,}要求A后面必须跟两个以上的B,如( abb , abbbb 等。);

示例7 ab{3,5}要求在a之后可以有2-5个B( abbb , abbb 或 abbbbb ).

(3)后跟带()的多个字符

例8 a(bc)*匹配A后跟0或a bc当然也可以写成‘a(BC){ 0,}’

示例9 a(bc){1,5}匹配1到5 bc。

-

相当于或用于表示一个或多个或

-

例1 AB匹配包含‘A’或‘B’的字符串;

例2 (AB)C匹配包含 AC 或 BC 的字符串;

例3 (AB)*C匹配包含(包括0-1) A或B后跟a C。

-。可以表示所有单个字符。

-。不要包含“n”个空格。如果有空格,请使用but空格加一个字符[n.]多个空格加一个字符[ n n n n .]

例1 a.[0-9]一个A加一个字符加一个从0到9的数字

例2。{3} $以三个任意字符结尾

-

“[ab]”中括号内的内容只匹配一个字符。

-

1 [ab]匹配单个A或B(同 AB );

2 [a-d]匹配从 A 到 D 的单个字符(与 abcd 和[abcd])效果相同;一般我们用【a-zA-Z】来表示一个字符在英语中是大小写。

例3 [A-ZA-Z]匹配以大写和小写字母开头的字符串。

示例4 [0-9]%匹配形状为X%的字符串

示例5,[a-zA-Z0-9]$匹配以逗号加数字或字母结尾的字符串

示例6% [a-za-z]%匹配包含两个百分号且其中有一个(非)字母的字符串。

你也可以在括号里列出你不想要的字符。您只需要在括号中使用 。

1:[内容]始于[],表示始于内容。

要点二:【】中【内容】的开头是排除内容的意思(不是意思)

重要:匹配包含这些字符的字符串。在方括号[* ?{}.]或符号将无效。圆括号只匹配一个字符。

重要提示:[]包含“]”。最好把它作为列表中的第一个字符(后面可能跟 )。

5: []包含-。最好放在前面或后面,或者一个范围的第二个端点[a-d-0-9]中间的-会有效。

-

b和B 1匹配一个单词右边界2匹配一个非单词边界。

-

例1‘ve b’:在love中可以配ve,在very中可以不配ve。

例2‘ov B’:在love中可以匹配ov,在ovry中不能匹配ov。

-

d和D

-

示例1 d匹配一个数字字符。相当于[0-9]。

示例2 D匹配一个非数字字符。相当于[0-9]。

-

w和W

-

1 w匹配任何单词字符,包括下划线。相当于“[A-Za-z0-9_]”

2 W匹配任何非单词字符,包括下划线。相当于“[a-za-z0-9 _]”。

-

匹配非打印字符

-

字符含义

cx匹配由x表示的控制字符,例如,cM匹配Control-M或回车。x的值必须是a-z或A-Z之一.否则,c将被视为字面上的“c”字符。

f匹配分页符。相当于x0c和cL。

n匹配一个换行符。相当于x0a和cJ。

r匹配回车。相当于x0d和cM。

s匹配任何空白字符,包括空格、制表符、分页符等。相当于[fnrtv]。

S匹配任何非空白字符。相当于[ f n r t v]。

t匹配选项卡。相当于x09和cI。

v匹配垂直制表符。相当于x0b和cK。

-

例子

-

匹配前导和尾随空白字符的正则表达式:s *| s * $

匹配电子邮件地址的正则表达式:w ([-。]w )*@w ([-。]w )*。w ([-。]w )*

匹配网址URL的正则表达式:[a-za-z]://[s] *

匹配账户是否合法(以字母开头,允许5-16个字节,允许字母数字下划线):[a-za-z] [a-za-z0-9 _] {4,15} $

匹配国内电话号码:d{3}-d{8}|d{4}-d{7}匹配形式为0511-4405222或021-8788822 920-209 642-964。

匹配腾讯qq号:[1-9][0-9]{4,} 1,后四位数字开头,即10000。

匹配中国的邮政编码:[1-9]d{5}(?d)中国的邮政编码是6位数字。

配套身份证:d{15}|d{18}点评:我国身份证有15位或18位。

匹配ip地址:d .d .d .d注释:提取ip地址时有用。

-

$//开始到结束

//1-N个连续的(串接的)1(即,-{1,})

-?//表示负数和非负数(即,-{0,1})

[0-9]* //表示前面的数字0-N(即[0-9]{0,})。//表示有点或没有点。

[//不是里面的内容

[a-z] //匹配所有小写字母

[A-Z] //匹配所有大写字母

[a-zA-Z] //匹配所有字母

[0-9] //匹配所有数字0-9的整数

[0-9.-] //匹配所有数字、句点和减号

-

[A-ZA-Z0-9 _]$//所有包含多个字母、数字或下划线的字符串//示例连接在一起aA0_A001a_

[0-9]$//所有正数(或非负整数)//例如34550068700809990999

^-?[0-9] $ //所有整数(包括负整数和整数)//示例-43443或43443

^-?[0-9]*.[0-9]*$ //所有小数(包括正负小数小数点前后的无限位数)//例如-10.00或100000.0000

如果没有小数点,后面一定没有数字,所以前面加一。判断有没有小数点,按理说没必要。是多余的。

因为这是判断小数的,如果没有小数点,那还叫交吗?

[A-Z]//除小写字母以外的所有字符

[/]//除“/”和“”之外的所有字符

[ ]//除双引号()和单引号()以外的所有字符

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