正则表示学习总结

前端之家收集整理的这篇文章主要介绍了正则表示学习总结前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

[]:要匹配的内容的范围

直接要匹配的内容写入[]中间即可

eg:在所有的信息中匹配1,2,3,4出现的位置,写成[1234]

- :表示连续,(是减号,并非下划线)

eg:你要匹配所有的英文字母,用上面的写法太麻烦了,使用-将会很简单做到,就可以写成[A-Za-z]就行了,注意x - y其中x < y才可以,负责将会报错。

^ :排除,不包含

eg:有时候我们会匹配一些相反的内容,比如不是数字的,将会包含大小写字母、特殊符号。书写麻烦,使用^将会很简单做到。[^0-9]就可以了。

eg:[^0-9a-d]:文本时0123456789abcdZ如果你觉得结果为“abcdZ“那你就错了,正确的结果是”Z“,这个正则表达式不是表示的要匹配不包含0 – 9 和包含a – d 的内容,而是匹配的不包含0 – 9 和 a – d 的内容

eg:^现在说的只是在[]中的表示方式。

一些常见的简写

\d = [0-9] =[0123456789]

\D = ^\d

\w = [_a-z0-9A-Z]

\W = ^\w

\s = [ \r\t\n\b\f] eg: 第一个内容为空。\s被叫做“空白字符“。

\S = ^\s

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

{}匹配内容出现的次数

{n}:前面的内容必须出现n次

eg:文本“0123456789“,正则表达式 [\d]{5]结果为01234和56789,

eg:正则表达式 [a]{5}只能匹配“aaaaa“

{m,n}:前面的必须出现在m次和n次之间,m < n

eg:文本“0123456789“,正则表达式[\d]{2,4},结果为0123、4567、89(此项可能存在差异)

eg:文本“a1a22a333a4444a55“,正则表达式[\d]{2,4},结果为12、123、1234

eg:正则表达式[a]{2,4}可以匹配 aa、aaa、aaaa

{m,}:匹配之前至少出现m次的,上线没有规定。

eg:正则表达式[a]{2,}可以匹配 aa、aaa、aaaa、aaaaa……aaa

一些常用的表示次数的简写

* = {0,}

? = {0,1}

+ = {1,}

()分组

分组主要用于,再一次匹配中多个数据必须同时出现,但是每个对用不同使用方法提取URL链接的时候,链接的地址和显示文字要出现同时出现,但是我们一般需要连接地址和显示文字分开用的。

分组的书写的格式:(?<name>regex),两个小括号见表示一个分组,<>两个尖括号中间表示的是分组的名字,regex表示正则表达式

eg:匹配的文本“<ahref="http://blog.csdn.net/rentiansheng">我的博客</a> “,正则表达式为”<a href="(?<URL>http://[\S]*)">(?<title>[\w]*)</a> “结果为 结果共一个,这一个结果中有两组,值为” http://blog.csdn.net/rentianshenghe我的博客“。(c#中测试的)

边界相关的

\b = [^a-z0-9A-Z_],还有一个没有描述出来就是每一行的开始,即是什么也没有的。可以用来表示单词的边界。

下面我们举一个例子:

X:表示没法匹配。√:表示可以匹配

字符串

\brow\b

row\b

\brow

tomorrow

X

X

brown

X

X

X

rowdy

X

X

X

row

eg:匹配所有的单词 \b[\w]+\w

^:表示行的开始。与我们看到屏幕上的一行行是有区别的。因为屏幕上可能会因为一行装不下。所以自动换行造成的。对^来说前面没有见任何东西或者\n(只有window中式\r\n)后面的第一个单词才是。注意,回车并会产生的是\f因而不是换行。

$:表示是行的结束。即是最后一个单词。也有可能是\n(只有window中式\r\n)前面的一个单词。

|:多选

书写格式(regex|regex|regex|……|regex)

eg:身份证可以分为18位和15位,

匹配18位身份证的正则表达式“”

匹配15位身份证的正则表达式“[1-9]\d{14}”

所以同时匹配18又匹配15的正则表达式可以写作”([1-9]\d{16}[0-9x]| [1-9]\d{14})”但是一般写作“[1-9]\d{14}(\d{2}[0-9x])?”

eg: IP地址匹配。这个比较麻烦。我们只说其中的一段地址可能是1、2、3。

位数

取值范围

正则表达式

3位

100-199

1\d{2}

200-249

2[0-4][0-9]

250-255

25[0-4]

2位

10-99

[1-9]\d

1

0-9

\d

随意IP地址其中 一段地址的匹配位(\d|[1-9]\d|1\d{2}|2[0-4][0-9]|25[0-4])

匹配IP地址位(\d|[1-9]\d|1\d{2}|2[0-4][0-9]|25[0-4]))\.{4}。注意其中的\.表示匹配“.”。 “\”用来匹配转意字符的。

eg:文本为“doube times or 2 time”,正则表达式为“doube|2 times”,你可能认为结果是“doubletimes”和 “2times”,错了,结果是“double”和“2 time”。想让结果产生的是“double times”和 “2 times”的正则表达式是“doube times|2times”和 “(doube|2)times”,后面的会产生分组。

注意:|将本组中前面所有的表达式和和后面的表达进行的或运算。



原文地址: http://blog.csdn.net/rentiansheng/article/details/8583386

猜你在找的正则表达式相关文章