【C++语言】正则表达式

一、正则表达式的概念

正则是一种规则,它用来匹配(进而捕获、替换)字符串。字符串根据正则规则进行处理,这种规则被许多语言所支持,C++11以后才支持正则。

二、具有特殊意义的元字符

\:\字符能够改变字符原本的含义

^:^字符指示字符串的头,且要求字符串以字符开头,不占位,\^表示一个真正的^符号

字符指示字符串的尾,且要求字符串以字符结尾,不占位,\表示一个真正的符号

():分组,大正则中包含小正则,可以改变默认的优先级,在模式中可以使用\1来表示第一组已然捕获到的东西

\b:指示字符串的边界(头/尾/空格左/空格右)

.:表示一个除了\n以外的任意一个字符,\.表示一个真正的.符号

|:字符串1 | 字符串2表示一个字符串,该字符串是字符串1和字符串2中的一个。|在正则表示式中的优先级比较混乱,所以建议加上足够多的括号来分组

\[\]:字符1字符2字符3......表示一个字符,该字符是字符1,字符2,字符3......中的某一个。中括号中出现的所有字符都是代表本身意思的字符(没有特殊含义),如.只能匹配.符号,而不能匹配任意符号

\^字符1字符2字符3......:表示一个字符,该字符不是字符1,字符2,字符3......中的任意一个

a\~z:表示一个字符,该字符是a,b,c......中的某一个

\^a\~z:表示一个字符,该字符不是a,b,c......中的某一个

\w:表示一个字符,该字符是数字、字母、下划线中的某一个。等价于(0\~9)(a\~z)(_)

\W:表示一个字符,该字符不是数字、字母、下划线中的任何一个。等价于\[\]

\d:表示一个字符,该字符是0、1、2...9中的某一个

\D:表示一个字符,该字符不是0、1、2...9中的任何一个

\s:表示一个字符,该字符是空白符(空格、制表符、换页符);代表出现的次数

三、量词元字符

:字符要求字符出现0到多次

+:字符+要求字符出现1到多次

?:字符?要求字符出现0次或者1次

{n}:字符{n}要求字符出现n次

{n,}:字符{n,}要求字符出现n到多次

{n,m}:字符{n,m}要求字符出现n到m次

所以含有\的元字符,在C++定义时,都要写成\\

四、常用的正则表达式

相关推荐
吴声子夜歌5 小时前
正则表达式——简单的模式匹配
正则表达式
吴声子夜歌10 小时前
正则表达式——前后查找
正则表达式
吴声子夜歌11 小时前
正则表达式参考
正则表达式
吴声子夜歌1 天前
正则表达式——常见应用软件和编程语言中的正则表达式
正则表达式
吴声子夜歌1 天前
正则表达式——使用子表达式
正则表达式
吴声子夜歌2 天前
正则表达式——重复匹配
正则表达式
吴声子夜歌2 天前
正则表达式——匹配单个字符
正则表达式
吴声子夜歌2 天前
正则表达式——位置匹配
正则表达式
Dawn-bit5 天前
Linux日志处理三剑客之基础篇:(基础正则+扩展正则)
linux·运维·服务器·正则表达式·云计算·运维开发
寒水馨5 天前
macOS下载、安装ripgrep-15.2.0(附安装包ripgrep-15.2.0-aarch64-apple-darwin.tar.gz)
macos·正则表达式·rust·ripgrep·rg·命令行搜索·代码搜索