温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

正则表达式字符集是什么

发布时间:2021-12-14 17:29:19 来源:亿速云 阅读:486 作者:小新 栏目:编程语言

这篇文章主要为大家展示了“正则表达式字符集是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“正则表达式字符集是什么”这篇文章吧。

正则表达式字符集是由一对方括号“[]”括起来的正则表达式字符集合。使用正则表达式字符集,你可以告诉正则表达式引擎仅仅匹配多个字符中的一个。如果你想匹配一个“a”或一个“e”,使用﹤﹤[ae]﹥﹥。你可以使用﹤﹤gr[ae]y﹥﹥匹配gray或grey。这在你不确定你要搜索的字符是采用美国英语还是英国英语时特别有用。相反,﹤﹤gr[ae]y﹥﹥将不会匹配graay或graey。正则表达式字符集中的字符顺序并没有什么关系,结果都是相同的。

你可以使用连字符“-”定义一个字符范围作为正则表达式字符集。﹤﹤[0-9]﹥﹥匹配0到9之间的单个数字。你可以使用不止一个范围。﹤﹤[0-9a-fA-F] ﹥﹥匹配单个的十六进制数字,并且大小写不敏感。你也可以结合范围定义与单个字符定义。﹤﹤[0-9a-fxA-FX]﹥﹥匹配一个十六进制数字或字母X。再次强调一下,字符和范围定义的先后顺序对结果没有影响。

◆正则表达式字符集的一些应用

查找一个可能有拼写错误的单词,比如﹤﹤sep[ae]r[ae]te﹥﹥ 或 ﹤﹤li[cs]en[cs]e﹥﹥。

查找程序语言的标识符,﹤﹤A-Za-z_][A-Za-z_0-9]*﹥﹥。(*表示重复0或多次)

查找C风格的十六进制数﹤﹤0[xX][A-Fa-f0-9]+﹥﹥。(+表示重复一次或多次)

◆取反正则表达式字符集

在左方括号“[”后面紧跟一个尖括号“^”,将会对正则表达式字符集取反。结果是正则表达式字符集将匹配任何不在方括号中的字符。不像“.”,取反正则表达式字符集是可以匹配回车换行符的。

需要记住的很重要的一点是,取反正则表达式字符集必须要匹配一个字符。﹤﹤q[^u]﹥﹥并不意味着:匹配一个q,后面没有u跟着。它意味着:匹配一个q,后面跟着一个不是u的字符。所以它不会匹配“Iraq”中的q,而会匹配“Iraq is a country”中的q和一个空格符。事实上,空格符是匹配中的一部分,因为它是一个“不是u的字符”。

如果你只想匹配一个q,条件是q后面有一个不是u的字符,我们可以用后面将讲到的向前查看来解决。

◆正则表达式字符集中的元字符

需要注意的是,在正则表达式字符集中只有4个 字符具有特殊含义。它们是:“] \ ^ -”。“]”代表正则表达式字符集定义的结束;“\”代表转义;“^”代表取反;“-”代表范围定义。其他常见的元字符在正则表达式字符集定义内部都是正常字符,不需要转义。例如,要搜索星号*或加号+,你可以用﹤﹤[+*]﹥﹥。当然,如果你对那些通常的元字符进行转义,你的正则表达式一样会工作得很好,但是这会降低可读性。

在正则表达式字符集定义中为了将反斜杠“\”作为一个文字字符而非特殊含义的字符,你需要用另一个反斜杠对它进行转义。﹤﹤[\\x]﹥﹥将会匹配一个反斜杠和一个X。“]^-”都可以用反斜杠进行转义,或者将他们放在一个不可能使用到他们特殊含义的位置。我们推荐后者,因为这样可以增加可读性。比如对于字符“^”,将它放在除了左括号“[”后面的位置,使用的都是文字字符含义而非取反含义。如﹤﹤[x^]﹥﹥会匹配一个x或^。﹤﹤[]x]﹥﹥会匹配一个“]”或“x”。﹤﹤[-x]﹥﹥或﹤﹤[x-]﹥﹥都会匹配一个“-”或“x”。

◆正则表达式字符集的简写

因为一些正则表达式字符集非常常用,所以有一些简写方式。

﹤﹤\d﹥﹥代表﹤﹤[0-9]﹥﹥;

﹤﹤\w﹥﹥代表单词字符。这个是随正则表达式实现的不同而有些差异。绝大多数的正则表达式实现的单词正则表达式字符集都包含了﹤﹤A-Za-z0-9_]﹥﹥。

﹤﹤\s﹥﹥代表“白字符”。这个也是和不同的实现有关的。在绝大多数的实现中,都包含了空格符和Tab符,以及回车换行符﹤﹤\r\n﹥﹥。

正则表达式字符集的缩写形式可以用在方括号之内或之外。﹤﹤\s\d﹥﹥匹配一个白字符后面紧跟一个数字。﹤﹤[\s\d]﹥﹥匹配单个白字符或数字。﹤﹤[\da-fA-F]﹥﹥将匹配一个十六进制数字。

取反正则表达式字符集的简写

﹤﹤[\S]﹥﹥ = ﹤﹤[^\s]﹥﹥   ﹤﹤[\W]﹥﹥ = ﹤﹤[^\w]﹥﹥   ﹤﹤[\D]﹥﹥ = ﹤﹤[^\d]﹥﹥

◆正则表达式字符集的重复

如果你用“?*+”操作符来重复一个正则表达式字符集,你将会重复整个正则表达式字符集。而不仅是它匹配的那个字符。正则表达式﹤﹤[0-9]+﹥﹥会匹配837以及222。

如果你仅仅想重复被匹配的那个字符,可以用向后引用达到目的。我们以后将讲到向后引用。

以上是“正则表达式字符集是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI