正则表达式笔记

来源:互联网 发布:js库有哪些 编辑:程序博客网 时间:2024/05/16 17:57

记录我遇到的正则表达式的理解


  • 基本的几个常见字符作用

“?” —匹配子表达式出现[0,1]次
“*” —匹配子表达式出现0~无穷
“+” —匹配子表达式出现1~无穷
“.” —匹配除了\n之外的任何单字符
“[]” —范围表达式,经常看到[0-9]表示匹配0到9直接的数字
“()” —标记一个子表达的开始和结束的位置,子表达式可以获取供以后使用
“$” —-匹配输入字符串的结尾位置
“^” —-和¥相反,但在范围表达式里表示不再这个范围
“\s” —匹配任意空白符,包括多个空白格
“\S”—和”\s”相反



  • 限制符

“*” “+” “?”
“{n}” —匹配确定n次 比如o{3} —》rooob,要有固定3个o的字符串
“{n,}” –匹配至少有n次相同的
“{n,m}”–n<=m,匹配[n,m]次相同的字符串



  • 范围表达式

“[0-9]”–匹配0到9的数字


-“a.*b”和”a.*?b”的判断

前者是匹配第一个a到最后一个b,符合这个条件的字符
后者是匹配第一个a到第一个遇见的b,符合这条件的字符
比如aabab,前者的符合字符为aabab
后者的符合字符为aab

-对表达式的计算过程要从左往右一步一步来

比如”o+?”,可以先看成o+(匹配一个以上个o)
?表示只匹配[0,1]次,所以
“o+?”可以读成匹配一个以上个o且匹配[0,1]次,
这样合并则表示o匹配一次的情况