ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 正则表达式 描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等 ## 两个原则 **最左原则** 总是从目标字符串的最左侧开始,依次匹配,直到匹配到符合表达式要求的部分,或者匹配到目标字符的结束。 **最长原则** 总是会匹配到符合正则表达式要求的最长的部分;即贪婪模式 ## 定义字符集 ~~~ [a-z] //所有a到z的小写字母 [0-9] //所有0到9的数字 [a-zA-Z] //所有a到z的大小写字母 ~~~ ## 特殊字符集 ~~~ $:匹配输入字符串的结尾位置 ^:表示字符串的开始 ():标记一个子表达式的开始与结束的位置 . :匹配除换行符\n之外的任何单字符 * :其前面那个单元出现0次或者以上(任意次数) +:其前面那个单元出现1次或以上 ?:其前面那个单元出现0次或1次 \:这个字符用来转义 |:指明两个选项中的一个选择 ~~~ ## 组合字符 ~~~ \d 等同于[0-9] \D 非[0-9],与\d刚好相反 \w 与任何单词字符匹配,包括下划线 \W 与\w的效果刚好相反 \s 空格字符 \S 非空格字符 \b 与单词边界进行匹配,及单词与空格之间的位置,结尾处 \B 非边界,就是单词当中的 ~~~ ## 限定符号 ~~~ {m} 其前一个单元,严格出现多少次 {m,} 其前一个单元,至少出现多少次,没有上限 {m,n} 其前一个单元,至少出现m次,至多出现n次 ^ 取反的意思 ~~~ ## 子表达式 ~~~ (.*?) ~~~