匹配神器正则表达式的运用

发布时间:2022-04-23 09:04:43 作者:cemon_liu 阅读量:193

正则表达式平时偶尔使用,都是从网上直接搜索借鉴。前天在使用时,发现都忘记了。需要重新学习一下。不管在哪个编程语言里面,用到正则表达式的机会都是比较多的。

什么是正则表达式

正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。

正则表达式的目的

  1. 可以测试字符串内的模式 即数据验证
  2. 可以用来替换文本
  3. 基于模式匹配从字符串中提取子字符串

正则表达式基本语法

常用的元字符

首先要认识的是一些元字符。这些在匹配是组合使用的。

  • ^ 代表的开始位置

比如我们一串字符串bcde去识别是否为bc开头的,则可以写为^bc

  • $ 代表结束位置

例如:abcd 确认是不是结束为cd 则cd$

  • * 代表匹配子表达式零次或多次

例如:abc ,aabb, aacc 确认c出现的次数 c*

  • + 代表匹配前面的表达式一次或多次

例如:abc ,aabb, aacc 确认c出现的次数 c+ 能匹配到的是abc和aacc

  • ? 代表匹配前面的表达式零次或一次

例如:abc ,aabb, aacc 确认c出现的次数 c? 能匹配到的是abc

  • {n} 匹配确定的n次
  • {n,} 至少匹配n次
  • {n,m} 至少匹配n次且最多匹配m次
  • 如果前面的字符后面加上了这个问号,则变为非贪婪模式即尽可能少的匹配字符串

匹配用的普通字符

  • . 代表除换行符之外任何单字符

  • [ABC] 匹配括号里面所有的字符

  • [^ABC] 匹配出来ABC的所有字符

  • [A-Z] 匹配所有大写字符

  • [a-z] 匹配所有小写字母

  • [0-9] 匹配数字0-9

  • \w 匹配字母数字和下划线

记录一些常用的正则表达式用法

求整数 145 ^([^0]\d+|(0+))$ 如果是多位则判定不是0开头的数字或者直接为0


求负整数 -123 ^-[^0]\d+$ 先用[^0]判定不是0开头,然后再判定数字至少出现一次


求数字和字母的组合 ^[A-Za-z0-9]+$


求长度为8-10的用户密码(以字母开头数字和下划线) ^[a-zA-Z]\w{7,9}$ 以字母开头 ^[a-zA-Z] ,\w表示为字母数字下划线出现7-9次


求是否包含某字符串开头并且开头可能包含空格 ^\s*昆山疫情.*$


苏ICP备 19049580号-1号

Catfish(鲶鱼) CMS V 6.7.3