正则表达式

前言

        正则表达式,在搜索和操作文本字符串,特别是在处理文本文件时,非常强大。一行正则表达式可以很容易地取代几十行编程代码。所有脚本语言(如Perl、Python、PHP和JavaScript)、通用编程语言(如Java)甚至用于搜索文本的Word等文字处理器都支持Regex。开始使用正则表达式可能并不容易,因为它的极客的语法,但它肯定是值得您投入的时间。

正则表达式验证网站链接:https://regex101.com/

一个典型的例子

用户名长度在2到17个字符之间的QQ邮箱匹配 ^[A-Za-z0-9_-]{2,17}@qq\.com$

正则表达式符号介绍

Repeaters ( *, +, and { } ) (重复字符)

符号说明表达式应用匹配字符举例
*匹配前面的字符(或字符集)0次或多次(直到无限次)ab*cac, abc, abbc, abbbc
+重复前面的字符(或字符集)至少一次或多次(最多无限次)ab+cabc, abbc, abbbc
{ }重复前面的字符(或字符集)的次数与括号内的值一样多a{2}aa

Wildcard (通配符)

符号说明表达式应用匹配字符举例
.通配符:点符号可以代替任何其他符号.a3a,aa、_a

Optional character ( ? ) (选择符)

符号说明表达式应用匹配字符举例
?可选择符:前面的字符可能存在也可能不存在于要匹配的字符串中docx?doc、docx

The caret ( ^ ) symbol(开始符)

符号说明表达式应用匹配字符举例
^匹配必须从字符串或行的开头开始^\d{3}901-333

The dollar ( $ ) symbol (结束符)

符号说明表达式应用匹配字符举例
$匹配必须发生在字符串的末尾,或者在行或字符串结尾处的\n之前-\d{3}$901-333

Character Classes (字符类)

符号描述
\s匹配任何空白字符,如空格和制表符
\S匹配任何非空白字符
\d匹配任何数字字符
\D匹配任何非数字字符
\w匹配任何单词字符
\W匹配任何单词边界(这将包括空格,破折号,逗号,分号等)
[set_of_characters]匹配set_of_characters中的任何单个字符。默认情况下,匹配区分大小写。

[first-last] Character range (字符范围)

符号描述表达式
[first-last]在a-z的范围内匹配其中一个字符[a-zA-Z]

The Escape Symbol ( \ ) (转义字符)

符号描述表达式应用匹配字符举例
\如果要匹配实际的'+','.'等字符,请在该字符之前添加反斜杠(\)。这将告诉计算机将以下字符视为搜索字符,并将其视为匹配模式。\d\+\d1+2

Grouping Characters ( ) (字符组)

符号描述表达式应用匹配字符举例
()正则表达式的一组不同符号可以组合在一起作为一个单元,并表现为一个块,为此,您需要将正则表达式括在括号()中。(abc)\d+abc1、abc123

Vertical Bar ( | )

符号描述应用表达式匹配字符举例
|匹配由竖线(|)字符分隔的任意一个元素。(a|b|c)ggagg、bgg、cgg

\number

符号描述应用表达式匹配字符举例
\nn为具体数字,允许先前匹配的子表达式(捕获或括在圆括号中的表达式)随后在同一正则表达式中被识别。\n表示第n个括号内的组将在当前位置重复[a-z])\1geek
  • 19
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值