首页 > 其他分享 >正则表达式

正则表达式

时间:2023-04-05 22:35:41浏览次数:27  
标签:字符 abc 匹配 正则表达式 捕获 字符串 模板

正则表达式语法

/匹配主体/[修饰符]

常见修饰符有以下几种

g:全局匹配,一般正则表达式遇到了第一个匹配的就会结束,例如/aaa/,这里匹配到第一个a就结束停止匹配,而加了g修饰之后会一直匹配到字符串末尾

i:正则表达式默认区分大小写,加了i修饰时则忽略大小写,此时A和a一样

m:可以使 ^ 和 $ 匹配一段文本中每行的开始和结束位置,即不把多行看成同一个字符串,对于每个单独的一行作为匹配对象

s:正常情况下 . 符表示匹配除\n以外的所有字符,加上s修饰后则包含了\n

对于不同的修饰符可以叠加使用例如/abc/gi

常见转义字符

字符集合[]

[abc]表示匹配a,b,c中的任何一个即可,即和该集合交集不为空

[0-9]=[0123456789]

[^abc]表示对于a,b,c都不匹配,即和该集合无交集

  • . 匹配除了换行符(\n)以外的任意一个字符 = [^\n]
  • \w = [0-9a-Z_]
  • \W = [^0-9a-Z_]
  • \s = [ \t\n\v]
  • \S = [^ \t\n\v]
  • \d = [0-9]
  • \D = [^0-9]

量词

量词一般跟在某个字符后面,表示对于该个字符进行多次匹配

{n} 匹配n次,例如A{2}=AA

{m,n} 匹配m到n次=[m,n],优先匹配n次,即可以匹配m,m+1....,n

{m,} 匹配大于等于m次,优先匹配出现的最大的次数

?={0,1} 匹配0或1次

+={1,} 匹配大于等于1次

* ={0,} 匹配大于等于0次

正则表达式匹配一般位贪婪模式优先匹配多的次数,在{}后面加?开启非贪婪模式

a{1,3}?优先匹配a

 

字符边界

^ ,开头匹配符,放在模板串开头,表示匹配以模板串为开头的字符串,例如^abc匹配以abc为开头的字符串

$ ,结尾匹配符,放在模板串结尾,表示匹配以模板串为结尾的字符串,abc$

\b单词边界,放在模板穿末尾,表示匹配边界为模板从字符串,即开头和结尾都要匹配的字符串,abc\b=^abc$,可以匹配abchhabc,但是不能匹配abchh和hhabc

选择表达式

通过分组来匹配多个字符串,用 | 将字符串分割开,前面字符集是匹配多个字符

abc|ig|op 表示匹配abc或ig或op

分组

(字符串),表示为一组,我们之前对于单个字符串的操作叶使用于字符组,[]除外

例如

 (ab){3}表示ababab

(ab|cd){2}表示abcd,abab,cdcd,cdab

分组默认为捕获组

普通捕获组(pattren),命名捕获组(?<name>pattern)或(?'name'pattern),非捕获组: ?: 、?= 或 ?! 重写捕获组,一般以?开头的普通捕获组为非捕获组

相比于捕获组,非捕获组不捕获文本,无分组编号,不可被反向引用

引用语法为\数字,表示引用前面第几个分组,后面匹配将和前面保持一致

预搜索

正声明 “(?=…)”:是指匹配项后面字符匹配了指定字符后才会匹配

负声明 “(?!...)” :是匹配项后面字符不匹配指定字符才会匹配

(?=a)b 只能匹配ab

(?!a)b 只能匹配bb

标签:字符,abc,匹配,正则表达式,捕获,字符串,模板
From: https://www.cnblogs.com/liyiyang/p/17291149.html

相关文章

  • PHP正则表达式
    验证邮箱格式复制代码//验证邮箱格式functioncheckEmail($email){if(!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)){returnfalse;}else{returntrue;}}复制代码验证URL复制代码//验证URLfunctioncheckWebsite($we......
  • 常用正则表达式
    一、校验数字数字:^[0-9]*$n位的数字:^\d{n}$至少n位的数字:^\d{n,}$m-n位的数字:^\d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$正数、负数、和小数:^(\-|\+)?\d......
  • (4.3)数组、对象及类数组对象,set的用法,正则表达式的常用方法,蓝桥杯备赛-(生成数组、数
    1.1数组、对象及类数组对象1.数组:​ 数组是有序的数据集合,其中的索引值从0开始递增,并且数组有length属性,可以获取数组内的元素个数,其中的值可以是任何的数组类型。2.对象:​ 对象是无序的是由一个或多个键值对组成的数据集合,对象没有length属性。3.伪数组(类数组对象):​ ......
  • 2023_3_19正则表达式
    (1)? 通配符匹配文件名中的0个或1个字符。而 * 通配符匹配零个或多个字符。^ 为匹配输入字符串的开始位置。[0-9]+匹配多个数字, [0-9] 匹配单个数字,+ 匹配一个或者多个。abc$匹配字母 abc 并以 abc 结尾,$ 为匹配输入字符串的结束位置。(2)地图接口:百度地图接口......
  • 常用API(Math,System,Runtime,Object,Objects,BigInteger,BigDecimal,正则表达式)
    常用API(Math,System,Runtime,Object,Objects,BigInteger,BigDecimal,正则表达式)多使用帮助文档类型取值范围和默认值Math类:​ 概念:帮助我们进行数学计算的工具类,里面的方法都是静态的,所以无需实例化这个类​ 常用方法:​ abs::获取绝对值 absExact:获取绝对值 rou......
  • python正则表达式记录
    今天写个脚本用到正则表达式,查阅了资料加问了gpt老师终于解决,在此记录。记录两种正则表达式有用的用法:1、匹配指定了前后文的字符串如我们需要匹配'ontheonehand'中的'one',而不要'ontheotherhand'中的'other';需要用到正则表达式语法中的“特殊构造”:(?...),之所以是特殊构......
  • 正则表达式
    一、元字符元字符是构造正则表达式的一种基本元素。.:匹配除换行符以外的任意字符w:匹配字母或数字或下划线或汉字s:匹配任意的空白符d:匹配数字b:匹配单词的开始或结束^:匹配字符串的开始$:匹配字符串的结束匹配有abc开头的字符串:abc或者^abc匹配8位数字的QQ号码:^dddddddd$......
  • 正则表达式学习
    第一个: 过滤guid相关的信息egrep^[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}$ 第二个:反编译代码timeforiin`find.......
  • python 正则表达式
    1.检测工具https://www.regexbuddy.com/download.html 需要钱钱买license是真的好用   2.单字符匹配.匹配任意一个字符(除了\n)[]匹配[]内列举的字符\d匹......
  • 正则表达式
    语法:^表示开始$表示结束[]代表某个范围内的单个字符,比如[0-9]单个数字字符.代表任意单个字符,除了换行和行结束符\w代表单词字符[A-Za-z0-9_]\d代表数......