美文网首页
常用的正则表达式总结

常用的正则表达式总结

作者: 数据蝉 | 来源:发表于2019-12-14 23:20 被阅读0次
一、正则表达式概念

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑。

二、正则表达式的特点
  1. 灵活性、逻辑性和功能性非常强;
  2. 可以迅速地用极简单的方式达到字符串的复杂控制。
  3. 对于刚接触的人来说,比较晦涩难懂。
三、正则表达式的目的

给定一个正则表达式和另一个字符串,我们可以达到如下的目的:

  1. 给定的字符串是否符合正则表达式的过滤逻辑(称作"匹配"):
  2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。
四、正则表达式的语法

要想真正的用好正则表达式,正确的理解元字符是最重要的事情。下表列出了所有的元字符和对它们的一个简短的描述。

语法 说明 表达式实例 完整匹配的字符串
字符
一般字符 匹配自身 abc abc
. 匹配任意除换行符“\n”外的字符。在DOTALL模式中也能匹配换行符 a.c abc
\ 转义字符,使后一个字符改变原来的意思。如果字符串中有字符 * 需要匹配,可以使用*或者字符集[ * ]。 a\.c a\\c a.c a\c
[...] 字符集(字符类)。对应的位置可以是字符集中任意字符。字符集中的字符可以逐个列出,也可以给出范围。如[abc]或[a-c]。第一个字符如果是^则表示取反,如[^abc]表示不是abc的其他字符。所有的特殊字符在字符集中都失去其原有的特殊含义。在字符集中如果要使用]、-或^,可以在前面加上反斜杠,或把]、-放在第一个字符,把^放在非第一个字符。 a[bcd]e abe ace ade
预定义字符集(可以写在字符集[...]中
\d 数字:[0-9] a\dc a1c
\D 非数字:[^\d] a\Dc abc
\s 空白字符:[<空格>\t\r\n\f\v] a\sc a c
\S 非空白字符:[^\s] a\Sc abc
\w 单词字符:[A-Za-z0-9_] a\wc abc
\W 非单词字符:[^\w] a\Wc a c
数量词(用在字符或(...)之后)
* 匹配前一个字符0或无限次。 abc* ab abccc
+ 匹配前一个字符1次或无限次。 abc+ abc abccc
? 匹配前一个字符0次或1次。 abc? ab abc
{m} 匹配前一个字符m次。 ab{2}c abbc
{m,n} 匹配前一个字符m至n次。m和n可以省略:若省略m,则匹配0至n次;若省略n,则匹配m至无限次。 ab{1,2}c abc abbc
* ?+???{m,n}? 使* + ?{m,n}变成非贪婪模式
边界匹配(不消耗待批匹配字符串中的字符)
^ 匹配字符串开头。在多行模式中匹配每一行的开头。 ^abc abc
$ 匹配字符串末尾。在多行模式中匹配每一行的末尾。 abc$ abc
\A 仅匹配字符串开头。 \Aabc abc
\Z 仅匹配字符串末尾。 abc\Z abc
\b 匹配\w和\W之间 a\b!bc a!bc
\B [^\b] a\Bbc abc
逻辑、分组
| 代表左右表达式任意匹配一个。它总是先尝试匹配左边的表达式,一旦成功匹配则跳过匹配右边的表达式。如果|没有被包含在()中,则它的范围是整个正则表达式。 abc|def abc def
(...) 被括起来的表达式将作为分组,从表达式左边开始每遇到一个分组的左括号'(',编号+1。另外,分组表达式作为一个整体,可以后接数量词。表达式中的|在该组中有效。 (abc){2}a(123|456)c abcabca456c
(?P<name>...) 分组,除了原有的编号外再指定一个额外的别名。 (?P<id>abc){2} abcabc
<number> 引用编号为<number>的分组匹配到的字符串。 (\d)abc\1 1abc1 5abc5
(?P=name) 引用别名为<name>的分组匹配到的字符串。 (?P<id>\d)abc(?P=id) 1abc1 5abc5
特殊构造(不作为分组)
(?:...) (...)的不分组版本,用于使用'|'或后接数量词。 (?:abc){2} abcabc
(?iLmsux) iLmsux的每个字符代表一个匹配模式,只能用在正则表达式的开头,可选多个。 (?i)abc AbC
(?#...) #后的内容将作为注释被忽略。 abc(?#comment)123 abc123
(?=...) 之后的字符串内容需要匹配表达式才能成功匹配。不消耗字符串内容。 a(?=\d) 后面是数字的a
(?!...) 之后的字符串内容需要不匹配表达式才能成功匹配。不消耗字符串内容。 a(?!=\d) 后面不是数字的a
(?<=...)之前的字符串内容需要匹配表达式才能成功匹配。不消耗字符串内容。 (?<=\d)a 前面是数字的a 前面是数字的a
(?<!...) 之前的字符串内容需要不匹配表达式才能成功匹配。不消耗字符串内容。 (?<!\d)a 前面不是数字的a
(?(id/name)yes-pattern|no-pattern) 如果编号为id/别名为name的组匹配到字符,则需要匹配yes-pattern,否则需要匹配no-pattern。|no-pattern可以省略。 (\d)abc(?(1)\d abc)
四、常见的正则表达式用法
4.1、校验数字的表达式
image.png
4.2、校验字符的表达式
image.png
4.3、特殊需求表达式1
image.png
4.4、特殊需求表达式2
image.png

相关文章

  • 2020-03-28 正则表达式基础与高级

    史上最全正则表达式语法,文末附常用表达式! 正则表达式的回溯 总结:回溯越少效率越高

  • 总结js常用函数和常用技巧

    学习过程中总结的干货,包括常用函数、常用js技巧、常用正则表达式等。 Ajax封装 使用方法: 后台响应Ajax ...

  • 常用正则表达式

    常用正则表达式 总结 正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之...

  • 正则表达式与方法

    正则表达式---常用符号 正则表达式--常用函数 正则表达式--常用技巧 代码: 正则表达式的应用举例 1、使用f...

  • JavaScript 中的正则表达式

    一、正则表达式声明 1、通过构造函数定义 2、通过直接量定义 (较为常用) 3、正则表达式的组成 (总结)由一些 ...

  • python正则学习

    一、常用的匹配规则总结表 原文链接 相关具体应用例子,请见:Python-正则表达式 二、re库中常用方法 相关具...

  • Javascript正则表达式常用的字符和符号

    Javascript的正则表达式在用于客户端验证的时候是非常实用和方便的,这里总结了一些常用的正则表达式的符号及其...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • Scala 文本分析 常用正则表达式

    文本分析在Spark开发中非常常见,而正则表达式又是文本分析中的重要工具,因此对一些常用正则表达式进行总结: \\...

  • 正则表达式

    什么是正则表达式?如何创建正则表达式正则表达式常用的方法字符串中的正则表达式常用的正则表达式假设用户需要在HTML...

网友评论

      本文标题:常用的正则表达式总结

      本文链接:https://www.haomeiwen.com/subject/sfwhnctx.html