正则表达式深入学习

find ./ -name *.txt //查找./目录下的任何Txt文件 
*为通配符

.任意字符
.*任意个任意字符 可以是0.+至少是一个任意字符

\. 转义字符 匹配'.'
\d 数字
\d? 0个或1个数字
\d+ 1~n个数字
\d{3} 3个数字
\d{3,5} 3~5个数字
\d*  0~n个数字
\b 单词边界 
\B 非单词边界
例如
\bis\b 表示句子中的this is a pen;里的单词is会被识别 而不会识别this里的is

(abc) abc里是一个分组group 便于提取出来
abc{2} 只是c循环两次
(abc){2}
分组在引用时分别为$1 $2 $3
忽略某分组 直接在分组内加上?:
(?:by).(ok) =>by被忽略

{4}量词 数量 表示4个数字

元字符[] 类是符合某些特性的对象 一个泛指
[abc]把字符a或b或c归为一类
例如
'a1b2c3d4'.replace(/[abc]/g,'x') =>  x1x2x3d4
[\-]匹配\或-

元字符^ 为反向类 即不属于某类内容 [^abc] 表示不是字符a、b、c的内容

范围类:
[a-z]表示从a-z的任意字符(闭区间)
还可以连写 [a-zA-Z]
例子
'2016-09-12'.replace(/[0-9-]/g,'A') => 'AAAAAAAAAA'
'2016-09-12'.replace(/[0-9]/g,'A') => 'AAAA-AA-AA'

^ 表示之后是开头
$表示之前的是结尾

/reg/g g为全局匹配,i忽略大小写,m多行搜索(即只要有换行符就算下一行
/ /gi 全局匹配并且忽略大小写

例1 匹配http://头的jpg文件地址
http:\/\/.+\.jpg 
注意!斜杠和点需要转移!
当我们要求把末尾是.jpg的http://的头去掉,即/http:(\/\/.\.jpg)/2 日期替换
^(/d{4})[/-](\d{2})[/-](\d{2})$ 可以使格式类似于2006/02/032006-02-03这种被提取出来,
其中每一个组分别为$1 $2 $3 
replace with $2-$3-$1 可得 02-03-2006

js里的正则表达式:
方法1、
str.replace(reg,'a') 
reg正则表达式 'a'替换成a
方法2var reg =new RegExp('\\bis\\b') 注意这个\要转移
var reg =new RegExp('\\bis\\b','g') 全局匹配

正则表达式里分为原义文本字符、元字符(即有特殊含义的字符)


正则表达式可视化
https://regexper.com/正则表达式深入学习_第1张图片
正则表达式深入学习_第2张图片

你可能感兴趣的:(正则表达式深入学习)