【关于正则表达式中限定符的解释】
最近看了很多博客网站上的正则表达式文章,包括一些限定符的解释,要么内容都是简简单单举例说明,拿了几个数来写一下,执行成功或失败,要么就是写的很复杂,可读性不强,以下内容是按照笔者本人对限定符的理解来写的,欢迎大家讨论说明
正则表达式:又称规则表达式,这是计算机科学的一个概念,不独立属于某一种语言,计算机语言都有
作用:常用来检索或替换某些符合规则的文本
什么叫做元字符
在了解限定符之前,首先我们需要对元字符做一定的了解,笔者为大家收录了以下的元字符以及相应的解释:
# 1.一个.表示匹配所有字符(这个点具有这样的特殊含义),当我们需要匹配一个点怎么办?加上\取消特殊含义
# 2.正常按本身匹配1匹配1,a匹配a,123匹配123,空格匹配空格
# 3.\d匹配所有数字
# 4.\D匹配所有非数字
# 5.\s匹配空格、制表、换行
# 6.\S匹配非空格、制表、换行
# 7.\w匹配所有英文数字下划线
# 8.\W匹配所有非英文数字下划线
# 9.\b\匹配的是单词边界(就是单词与符号之间的界限)
# 这里的单词可以是中文字符,英文字符,数字;符号可以是中文符号,英文符号,空格,制表符,换行
# \b表示的是边界,比如\bAB\b匹配AB,ABc,\b就表示左右两个边界,一定是通过分隔符分开的,
# 也就是要么是开始或结尾要么就是分隔符
# \b不常用来匹配,常用来获取文本
# 10.\B表示匹配非单词边界
# \BAB\B匹配CABCAB--两个
# 11.^表示限定开头:比如^hello匹配hellohellohello只能匹配一个
# 12.$表示限定结尾:比如o$--匹配hellohellohello,也只能匹配一个o
# [ - ]表示匹配一个范围的值
# [3-9]表示匹配3-9包括3和9的所有数,可以不连续
# [A-Z]表示匹配A-Z的字符,中括号中排序按照ASCII中的顺序
# [3-9A-Z]或[3-9A-Za-z]表示同时匹配
# [3~9]表示匹配3,9,~
# [^3-9]表示匹配非3-9外的所有
# 13.|表示和
# (a|b)123--匹配a123和b123
# a|b123--匹配a和b123
# 14.多个点表示匹配多个值
# ....匹配abcdefg---abcd
元字符的作用:通过特殊规则匹配对应的元素,或者获取对应的元素值
限定符
通过特殊字符的规则,对元字符所作匹配内容做限制
1.?–?表示匹配0次或1次
这里的0次或1次并不是指具体匹配的次数,而是针对贪婪模式下,最后一个贪婪位和前面的内容。贪婪位可以匹配或不匹配,??表示取消贪婪模式
2.+表示匹配1次或者1+次–这里就是指具体的次数了
3.表示匹配0次或者无数次
a 可以匹配aaaaaaaa所有的a,通过?取消贪婪变成0次
(ab)* 可以匹配ab、abababab,取消贪婪之后变成了0次
4.{9}表示匹配9次
5.{9,}表示匹配9+次
6.{9,11}表示匹配9-11次
# 我把离?最近的字符称之为贪婪位,两个??取消贪婪模式
# 1.ab?匹配edcacabcab--匹配出来是a和ab、ab
# 2.a?匹配到纯a
# 3.a??匹配不到任何,将a当作贪婪位取消掉了
# 4.abc?匹配出来应该可以匹配上ab,abc
# 5.abc??匹配到ab
# [A-Z][3-9]?与[A-Z][3-9]??呢
# 2.+表示匹配1次或者1+次--这里就是指具体的次数了
# a去匹配aaaaaa只能匹配上一个a
# a+去匹配aaaaaabbaa可以匹配上所有的a