正则表达式的一些基础记录
正则表达式现在用的比较多,虽然公司不怎么用,原本记得的又忘了,还是写下来靠谱点。
记录些基础知识,再去找点常见实例,有助于记忆。
元字符与特殊字符
^串的开始
$串的结束
*零到多次匹配
+一次到多次匹配
?零或一次匹配
\b单词边界
字符本身 匹配字符本身
\r 匹配回车
\n 换行
\t 制表符
\f 换页
\x# 十六进制数
\cX 控制字符
范围及重复
[...] 在集合中的任一字符
[^...] 不在集合中的任一字符
. 出\n之外的任一字符
\w 所有单字,包括所有字母,数字及下划线
\W 不包括所有单字,\w的补集
\s 所有的空白字符,包括空格,制表符
\S 所有的非空白字符
\d 所有的数字
\D 所有的非数字
\b 退格字符
{n} 重复n次
{n,} 重复n或更多次
{n,m} 重复至少n次,至多m次
()有三种情况 第一种,h(elp)?//字符h之后的elp可有可无
第二种,括号用来分组 var pattern =/\w{4}(\d{4})(\w{2})/; var result = pattern.exec("yunn0871cg");
exec 返回一个数组(匹配成功) 数组的第一个元素(下表为0)表示整个串,第一个元素为第一个分组,第二个元素
为第二个分组,以此类推
yunn 0871 cg
第三种,括号用来对引用起辅助作用,即在同一个表达式中,后边的式子可以引用前边匹配的文本
switch
i忽略大小写开关
g 全局搜索开关
m 多行搜索开关(重定义^与$的意义)
/java/i 可以匹配java/Java/JAVA /java/g 匹配"javascript&java"中的两个"java"
RegExp对象的方法
test() 测试串中是否有合乎模式的匹配
exec() 对串进行匹配
compile() 变异正则表达式
String的正则表达式
match匹配正则表达式,返回匹配数组
replace替换
split分割
search查找,返回首次发现的位置