美文网首页
正则基础之字符组、量词

正则基础之字符组、量词

作者: Tinyspot | 来源:发表于2023-01-08 23:01 被阅读0次

1. 字符组

1.1 普通字符组

  • 字符组中的字符排列顺序并不影响字符组的功能,出现重复字符也不会影响
    • 比如:[123], [312],[1223]
  • -范围表示法
    • 比如 [a-z]表示 a 到 z 整个范围内的字符,省去一一列出的麻烦
    • 在字符组中,-表示的范围,一般是根据字符对应的码值(Code Point,也就是字符在对应编码表中的编码的数值)来确定的,码值小的字符在前,码值大的字符在后

示例:
匹配十六进制字符
正则表达式:[0-9a-fA-F]

1.2 元字符与转义

  • 转义:取消特殊含义
  • 元字符可以通过加反斜杠\ 来转义
  • 字符组中的横线-并不能匹配横线字符,而是用来表示范围
    • –出现在不同位置,含义不同;- 如果紧邻着字符组中的[,那么它就是普通字符,其他情况下都是元字符
    • 正则表达式原生字符串 [0\-9]
    • 程序代码 String regx = "[0\\-9]";
  • \ 也是一个元字符,匹配本身 \\

1.3 排除型字符组

  • [^...]
    • 第一个非数字,第二个是数字 [^0-9][0-9]

1.4 字符组简记法

  • \d 等价于 [0-9]
  • \w 等价于 [0-9a-zA-Z_], w 代表单词字符(word)
  • \s 等价于 [\t\r\n\v\f]

1.5 字符组运算

匹配元音字母 [aeiou]
匹配辅音字母 [[a-z]&&[^aeiou]], 即从26个字母中“减去”元音字母,剩下的就是辅音字母

2. 量词

2.1 通用形式 {m,n}

  • 不确定长度的量词 d{m,n}(逗号之间不能有空格)
  • {n} 出现 N 次
  • {m,n} 出现 m ~ n 次
  • {m,} 至少 m 次
  • {0,n} 最多 N 次,隐式的上限是65536

2.2 常用量词(*、+、?)

  • * 等价 {0,}
  • + 等价 {1,}
  • ? 等价 {0,1}

示例1: 量词 ?
匹配 http和https,正则 https?

image.png

示例2: 量词 +
HTML tag 标签,如 <table>
正则表达式:<[^>]+>
说明:用<匹配开头的<,用>匹配结尾的>,用[^>]+匹配中间的“若干字符”

image.png

表达式 <[^/>][^>]*> 匹配 open tag,排除 </img>之类的close tag

image.png

示例3:量词 *
匹配双引号字符串(可以为空串 "")
正则表达式:"[^"]*"

image.png

3. 点号

  • 点号可以匹配“任意字符”(除:换行符\n),常见的数字、字母、各种符号都可以
  • 真正匹配“任意字符”可用 [\s\S]

3.1 匹配优先量词(greedy quantifier)

  • 匹配优先量词,顾名思义,就是在拿不准是否要匹配的时候,优先尝试匹配

假设匹配引号里字符串用正则 ".*"
分析:
.可以匹配任何字符,*表示长度没有限制
此时 "try""try" and demo" 都能被匹配

image.png

3.2 忽略优先量词(lazy quantifier或reluctant quantifier)

忽略优先量词,把 * 改为 *?
*? 限定的元素出现次数范围与 * 完全一样,都表示“可能出现,也可能不出现,出现次数没有上限”
在实际匹配过程中,遇到能匹配的字符,先尝试“忽略”,如果后面的元素不能匹配,再尝试“匹配”

相关文章

  • 3.1 分组

    用字符组和量词可以匹配引号字符串,也可以匹配html tag,如果需要用正则表达式匹配身份证号码,依靠字符组和量词...

  • 正则基础入门

    一、正则基础字符: 二、字符组集合运算

  • 正则表达式符号含义

    关键词:正则表达式 正则表达式是一种特殊的字符串模式,用于匹配一组字符串 元字符 量词关于量词所涉及到的重要的三个...

  • 正则初识(一)规则

    定义 特殊字符:是在正则表达式中有特殊含义的非字母字符特殊字符 量词:在正则中表现出现次数的量词 其他常用字段常用...

  • JS正则捕获的贪婪性

    问号在正则中的五大作用:问号左边是非量词元字符:本身代表量词元字符,出现零到一次;问号左边是量词元字符:取消捕获时...

  • javascript正则表达式(四)

    正则捕获的贪婪性 问号的5个作用1.问号左边是非量词元字符: ?本身代表量词元字符, 出现零到一次问号左边是量词元...

  • regrex扩展

    正则的扩展 u修饰符 支持unicode字符匹配.字符能匹配unicode字符unicode字符表示法\u{}量词...

  • 「JS」正则表达式

    正则表达式锚点字符类元字符量词转移符多选分支 常用方法测试:regxObj.test(str)捕获搜索与替换 正则...

  • 正则表达式中的“量词”入门介绍

    正则表达式中的量词可以用来指明某个字符串匹配的次数。将在以下描述“贪心量词”(Greedy)、“厌恶量词”(rel...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

网友评论

      本文标题:正则基础之字符组、量词

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