首页 > 其他分享 >正则表达式(重点)

正则表达式(重点)

时间:2023-03-05 19:36:19浏览次数:36  
标签:字符 abc 匹配 正则表达式 重点 字符串 任意

正则表达式是一种对字符串操作的逻辑共识,就是用事先定义好的字符以及这些字符的特定组合组成一个”规则字符串“,这个“规则字符串”用来对字符串进行过滤,简单来说就是一种限制条件,

一般用处例如我们的密码限制输入不少于多少位,或者说身份证或手机号的固定位数,其目的是在保护我们于行程序的安全性,因为我们的程序运行是进入的参数有时需要固定的类型但恰巧

又不愿意按规定办事的,所以我们自己进行设定,加强我们程序的可行性与健壮性。

1.字符类
    .       匹配除了换行符(\n)以外的任意一个字符
    \w   任意一个字母或数字或下划线,也就是 A~Z,a~z,0~9,_ 中任意一个
    \d   任意一个数字,0~9 中的任意一个
    \s       包括空格、制表符、换页符等空白字符的其中任意一个
    \W\D\S  非字母, 数字, 空白字符
    [abc]   匹配a、 b、或c中的任何一个
    [^abc]   匹配 a、b和c之外的任何一个
    [a-g]   a-g间的任意一个字符
2.锚
    ^abc$     字符串的开头/结尾
    \b \B     单词边界、非单词的边界
    转义字符
    \. \* \\ 转义特殊字符
    \t\n\r     制表符, LF换行符, CR换行符
3. 分组 & 前瞻后顾
(abc)    捕获分组
    \1        反向引用#1
    (?:abc)    不捕获分组
    (?=abc)    正向前瞻
    (?!abc)    负向前瞻
4.量词 & 分支
    a* a+ a?   0个或更多,1个或更多,0个或1个
    a{5} a{2,} 刚好5个,2个或以上
    a{1,3}    1~3个
    a+? a{2,}? 贪婪匹配(仅可能少匹配)
    ab|cd    配 ab 或 cd

* 匹配 0 或多个字符 a*b a与b之间可以有任意长度的任意字符, 也可以一个也没有, 如aabcb, axyzb, a012b, ab。
? 匹配任意一个字符 a?b a与b之间必须也只能有一个字符, 可以是任意字符, 如aab, abb, acb, a0b。
[list] 匹配 list 中的任意单一字符 a[xyz]b a与b之间必须也只能有一个字符, 但只能是 x 或 y 或 z, 如: axb, ayb, azb。
[!list] 匹配 除list 中的任意单一字符 a[!0-9]b a与b之间必须也只能有一个字符, 但不能是阿拉伯数字, 如axb, aab, a-b。
[c1-c2] 匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z] a[0-9]b 0与9之间必须也只能有一个字符 如a0b, a1b... a9b。
{string1,string2,...} 匹配 sring1 或 string2 (或更多)其一字符串 a{abc,xyz,123}b a与b之间只能是abc或xyz或123这三个字符串之一。
需要说明的是:通配符看起来有点象正则表达式语句,但是它与正则表达式不同的,不能相互混淆。把通配符理解为shell 特殊代号字符就可。而且涉及的只有,*,? [] ,{} 这几种。
主要语法普通字符普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。非打印字符非打印字符也可以是正则表达式的组成部分。下表列出了表示非打印字符的转义序列:
字符 描述
\cx 匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。
\f 匹配一个换页符。等价于 0c 和 \cL。
\n 匹配一个换行符。等价于 0a 和 \cJ。
\r 匹配一个回车符。等价于 0d 和 \cM。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。注意 Unicode 正则表达式会匹配全角空格符。
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\t 匹配一个制表符。等价于 09 和 \cI。
\v 匹配一个垂直制表符。等价于 0b 和 \cK。
特殊字符所谓特殊字符,就是一些有特殊含义的字符,如上面说的 runoo*b 中的 *,简单的说就是表示任何字符串的意思。如果要查找字符串中的 * 符号,则需要对 * 进行转义,即在其前加一个 \: runo\*ob 匹配 runo*ob。许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符\ 放在它们前面。下表列出了正则表达式中的特殊字符:
特别字符 描述
$ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'
标记一个子表达式的开始和结束位置,子表达式可以获取供以后使用
* 匹配前面的子表达式零次或多次
+ 匹配前面的子表达式一次或多次
. 匹配除换行符 \n 之外的任何单字符
[ 标记一个中括号表达式的开始
? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符
\ 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符

标签:字符,abc,匹配,正则表达式,重点,字符串,任意
From: https://www.cnblogs.com/222wan/p/17181360.html

相关文章

  • php 正则表达式匹配(输出是否匹配以及匹配值) preg_match
    preg_match—执行一个正则表达式匹配preg_match($pattern,$subject,$matches)搜索subject与pattern给定的正则表达式的一个匹配.参数:pattern:要搜索的模式,字符......
  • 滚蛋吧,正则表达式!
    大家好,我是良许。不知道大家有没有被正则表达式支配过的恐惧?看着一行火星文一样的表达式,虽然每一个字符都认识,但放在一起直接就让人蒙圈了~你是不是也有这样的操作,比如你......
  • 5.JavaScript提供的正则表达式API、可以使用正则表达式解决常见问题(邮箱校验、URL解析
    JavaScript提供的正则表达式API、可以使用正则表达式解决常见问题(邮箱校验、URL解析、去重等)js正则常用API1.五个常用方法①testreg.test(str);//返回是否包含正则......
  • JavaScript 正则表达式2
    <!DOCTYPEhtml><html> <head> <metacharset="UTF-8"> <title></title> <scripttype="text/javascript"> /* *创建一个正则表达式检查一个字符串中......
  • #yyds干货盘点#nginx正则表达式
    nginx正则匹配说明:细则:前缀匹配优先其中,最长匹配优先而后,按配置顺序匹配正则,正则第一个匹配到后终止无正则匹配,则用前面记住的前缀"="精确匹配,匹配后终止"~"区分大小写匹......
  • 正则表达式
    先开个篇,研究下正则表达式由于字母数字是连续相邻的,所以可以直接组合//正则表达QRegularExpressionregexp("(\[0-9a-zA-Z]+)");//匹配字母数字QRegularE......
  • 正则表达式
    本文为转载,由于时间过长忘记出处无法标注来源,特此声明正则表达式1、什么是正则表达式简单的说,正则表达式就是为处理大量的字符串及文本而定义的一套规则和方法。正......
  • JavaScript 正则表达式
    <!DOCTYPEhtml><html> <head> <metacharset="UTF-8"> <title></title> <scripttype="text/javascript"> /* *正则表达式 * [email protected] ......
  • 装饰器(重点)
    一、装饰器介绍1.1为何要用装饰器软件的设计应该遵循开放封闭原则,即对扩展是开放的,而对修改是封闭的。对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适......
  • 常用正则表达式
    非负整数:^\d+$正整数:^[0-9]*[1-9][0-9]*$非正整数:^((-\d+)|(0+))$负整数:^-[0-9]*[1-9][0-9]*$整数:^-?\d+$非负浮点数:^\d+(\.\d+)?$正浮点数:^((0-9)+\.[0-9]*[1-9......