欢迎大家来到IT世界,在知识的湖畔探索吧!
上节说过正则表达式是什么能干什么,这节说下正则表达式的基本组成
1 元字符
1) . 一个点表示可以匹配除了\n之外的任何单个字符
例如正则表达式“a.c”能匹配如下的字符串”abc”、”aac”等,如果想匹配如”abbc”,正则表达式则为”a..c”中间需要两个点
2)[ ] 匹配中括号中任意单个字符
A:表示匹配中括号中的任意单个字符,例如正则表达式”a[abc]c”可以匹配”aac”,”abc”与”acc”,但与”adc”,”aec”等都不匹配
B:可以在括号中使用连字符横杆”–“指定匹配字符的区间来简化表示,例如正则表达式”a[0-9]c”表示可以匹配任何0-9之间的数字等价于”a[0123456789]c”可以匹配”a0c”到”a9c”等字符串;还可以指定多个区间,例如”[a-zA-Z]”表示可以匹配任何大小写字母,”[a-zA-Z0-9]”表示可以匹配任何的大小写字母或者数字
3)( ) 将 () 之间括起来的表达式定义为“组”(group)表示一个整体,两个作用:1)改变优先级 2)定义提取组(字符串提取)
4)| 将两个匹配条件进行逻辑”或”的运算
例如正则表达式”a|bcd”表示可以匹配”a”或者”bcd”;
与()连用例如”(a|b)cd”表示可以匹配”acd”或者”bcd”
2限定符
限定符:作用就是限定前面的正则表达式出现的次数。
1)? 1是表示匹配前面的子表达式出现零次或一次;2是可以终止贪婪模式
例如正则表达式”ab?c”表示可以匹配”ac”或者”abc”
2)* 表示匹配零或多个之它前面的子表达式,与通配符*没关系
例如正则表达式”ab*”等同于”a(b)*”可以匹配”a”,”ab”,”abb”等,与()或者|连用时例如:正则表达式”a(zx)*”匹配”a”,”azx”,”azxzx”等;正则表达式”a(b|c)*”可以匹配”a”,”ab”,”ac”等;。
3)+ 表示匹配一次或多次它前面的子表达式,与*对比,+表示至少出现一次,例子不再列举
4){n}表示匹配确定的次数
正则表达式”k{3}”表示k至少出现可以匹配”kkk”,”akkkb”等
5){n,m} 表示最少匹配 n 次,最多匹配 m 次
正则表达式”a{1,3}”可以匹配”a”,”aa”,”aaa”;不能匹配如”aaaa”等超过范围的字符串
6){n,} 表示至少匹配n次,多的不限
例如”a{3,}”可以匹配”aaa”,”aaaaa”等;不能匹配与”a”或者”aa”等
3特殊字符
1)^ (shift+F6)
A:表示以什么开头;例如正则表达式”^[a]+”可以匹配”ab”等;不能匹配”cad”等
B:表示”非”就是否定的意思;例如正则表达式”[^a]+”表示不能以a开头可以匹配”bc”等
2)$ (shift+F4) 表示以什么结尾
例如正则表达式”z#34;匹配”az”,”sz”等;不能匹配”za”,”zs”等
以上正则表达式字符的举例只是简单的应用,它们都可以组合使用完成复杂的正则表达式例如匹配网址的 [a-zA-z]+://[^\s]* 等比较常用的可以在网上找到;正则表达式看着比较简单只是这些字符的组合实际写出一个正确高效的还是比较难的,只能说多练习应用,与之前的递归一样,原理看着很简单,实际程序应用中比较难
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/33002.html