正则表达式练习

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

一、正则表达式练习工具:

或者在线练习:

二、常用正则表达式字符

常用元字符
代码 说明
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
常用限定符
代码/语法
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
重复n到m次
常用反义词
\W
匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeIoU] 匹配除了aeIoU这几个字母以外的任意字符

三、正则表达式练习题

正则表达式中包含了一系列的字符,这些字符只能匹配它们本身。有一些被称为“元字符”的特殊字符,可以匹配一些特殊规则。

1、普通字符的练习

cat 匹配 cat

dog 匹配 dog

2、点“.”字符的使用【“.”字符匹配任意一个字符】

字符类:

c.t 可匹配cat、cot ,cmt ,czt 等等

使用\反斜杠,忽略元字符,例如:

c\.t只能匹配 c.t

c\\t只能匹配c\t

3、方括号的使用“[]

[abcd] 可匹配a,b,c,d中的任意一个字符,例如

c[abc]t 可匹配 cat,cbt,cct

方括号中的字母顺序并不重要,例如:[abc]等同于[bca]


使用反斜杠忽略元字符“\”: c\[t只能匹配c[t

字符范围:

[b-f]等同于[bcdef]

[A-Z]等同于[ABCDEFGHIJKLMNOPQRSTUVWXYZ]

练习:

【我们要匹配:hh-mm-ss 这种格式的时间,如下:】

[0-2][0-9]-[0-5][0-9]-[0-5][0-9]

【我们要匹配:YYYY-MM-DD这样的年-月-日格式,如下:】

[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]

字符的反义:

[^a]匹配任何不是a的字符

[^a-zA-Z0-9]匹配任何不适数组也不是字母的字符

[\^abc]可以匹配:^,a,b,c中的任意一个字符

[^\^]表示匹配任意不为 ^的字符

练习:

【找到一个at之前没有c的单词,即不适cat的单词】

[^c]at

4、转义字符:

\d匹配任意一个数字,相当于[0-9]

\w 匹配一个数字或字符,相当于[0-9a-zA-Z]

\D 匹配一个非数字,相当于[^0-9]

\W 匹配一个非数字或字母,相当于[^0-9a-zA-Z]

练习:

【简化:[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]的写法:

\d\d\d\d-\d\d-\d\d

5、重复字符“{}”,使用大括号:

a{3} 表示字符串aaa ,即a重复3次的意思

a\{2\}表示字符串a{2}

[{}]表示匹配一个左边的大括号或右边的大括号

练习:

【简化下面的表达式:

z.......z

\d\d\d\d-\d\d-\d\d

[aeIoU][aeIoU][aeIoU][aeIoU][aeIoU][aeIoU]
[bcdfghjklmnpqrstvwxyz][bcdfghjklmnpqrstvwxyz][bcdfghjklmnpqrstvwxyz][bcdfghjklmnpqrstvwxyz][bcdfghjklmnpqrstvwxyz][bcdfghjklmnpqrstvwxyz][bcdfghjklmnpqrstvwxyz][bcdfghjklmnpqrstvwxyz][bcdfghjklmnpqrstvwxyz][bcdfghjklmnpqrstvwxyz]

答案:

z.{7}z

\d{4}-\d{2}-\d{2}

[aeIoU]{6}

[bcdfghjklmnpqrstvwxyz]{10}

指定重复范围:

a{4,4} 相当于a{4}

colou{0,1}r 可表示colour或color

a{3,5}可表示 :aaaaa,aaaa,aaa

a{1,}表示匹配一个或以上的连续字符a ,相当于: a+

.{0,}表示匹配任意字符,相当于: .*

练习:

【匹配双引号之间的任意字符,包含前后的双引号:】

".{0,}"也可以使用 ".*"

关于重复的转义字符:

?表示重复0次货一次,相当于: {0,1}

*表示重复0次货多次,相当于: {0,}

+表示重复1次或多次,相当于: {1,}

\?\*\+ 表示匹配 ?*+

{?*+}表示匹配一个?*或+

练习:

【简化下面的表达式:

".{0,}" and "[^"]{0,}"
x?x?x?
y*y*
z+z+z+z+

答案:

“.*"and"[^"]*

x{0,3}

y*

z{4,}

7、选择匹配“|”,竖线
cat|dog表示匹配cat或者dog
a|b|c 相当于 [abc]
cat|dog|\|表示匹配cat dog 或者 |
[cat|dog]表示匹配c a t d o g 或者 |

练习:
【简化下面表达式:
s|t|u|v|w
aa|ab|ba|bb
[abc]|[^abc]
[^ab]|[^bc]
[ab][ab][ab]?[ab]?
答案:
[stuvw]
[ab]{2}
.
[^b]
[ab]{2,4}
使用真正表达式匹配0到31之间的数:
[0-9]|[12][0-9]|3[01]

8、分组“()”,使用括号
(Mon|Tues|Wednes|Thurs|Fri|Satur|Sun)day 表示一周的某一天
(white|yellow|grew|black)cat 表示4种颜色的猫的任意一种
\(\) 表示一对括号
[()]表示正括号或者反括号
9、单词分割符 \b
在单词和单词之间有单词分隔符,文本的开头和结尾通常有单词分割符
\b\w\w\w\b 表示一个3个字母的单词
10、换行
^ 表示行的开始
$ 表示行的结束
^$ 表示一个空行
^.*$ 表示整行
\^\$ 表示匹配 ^或 $
[$] 表示匹配 $
[^]不和法,应该写为 [\^] ,表示匹配一个^
原文链接:https://www.f2er.com/regex/357790.html

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