又来折腾--正则表达式

正则表达式30分钟入门教程 --很不错值得看,按部就班的,诱敌深刻,渐入佳境/美景
http://deerchao.net/tutorials/regex/regex-1.htmhtml

正则表达式30分钟入门教程-BeJSON.com-- 这篇看着更好的样子
http://www.bejson.com/knownjson/regexJiaocheng/正则表达式

 

----------------------算法

1.元字符介绍
    "^" :匹配行或者字符串的起始位置
     "$" :匹配行或字符串的结尾
    "\w":匹配字母,数字,下划线.
    "\d" : 匹配数字
     "." :匹配除了换行符之外的任何字符
    "[abc]":  匹配包含括号内元素的字符 
2.反义
    "\W" :匹配任意不是字母,数字,下划线 的字符
    "\S"  :匹配任意不是空白符的字符
    "\D"  :匹配任意非数字的字符
    "\B"  :匹配不是单词开头或结束的位置
     "[^abc]" :匹配除了abc之外的任意字符
3.量词
    "*" :重复零次或更多
    "+" :重复一次或更屡次
    "?"  :重复零次或一次
    "{n,m}" :重复n到m次
    "{n}"     :重复n次
    "{n,}"    :重复n次或更屡次
4限定符
    "*?" :重复任意次,但尽量少重复  
    "+?" :重复1次或更屡次,但尽量少重复
    "??"  :重复0次或1次,但尽量少重复
    "{n,m}?" :重复n到m次,但尽量少重复
    "{n,}?"  :重复n次以上,但尽量少重复

------------ 找一些  字符串 到这个网站测试一下,json

在线正则表达式测试
http://tool.oschina.net/regex/# 网络

--我的实践--


\beos\.\w*\b 能够帅选出全部 eos.开头的测试

\b\w*.com 筛选出,com结尾的字符串,可是前面有两个点的筛选不出来。
\b\w*\.com 查找 .com 结尾的
\b\w*\.\w*\.com 只有两个点的.com结尾的被筛选出来
\b\w*\.\w*\.com|\b\w*\.com 一个点或两个点都被筛选出来。
\bvip\.\w*\b 筛选vip. 开头的
网站

\b.*vip.*\b 包含vip的都会出来spa

\b.*[1-5]{1,12}.*\b 包含1到5数字的都出来.net

 


(\d{1,3}\.){3}\d{1,3} 匹配ip,但它也将匹配256.300.888.999这种 错误ip
正确的IP地址:((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)。
理解这个表达式的关键是理解2[0-4]\d|25[0-5]|[01]?\d\d?,
2[0-4]\d|25[0-5]|[01]?\d\d? 第一种2开头中间是0到4后面一个随意;第二种25开头,后面一位小于6;
第三种第一位0或1出现一次或者零次,第二位任意数字,第三位数字出现一次或者0次。excel

验证手机号码 实际代码中 ^[1][3,4,5,7,8][0-9]{9}$这样用,^$整个字符串中,1开头,第二位34578中一个,后接9位数字

--网络例子实践

正则小应用:批量修改文件名   ---里面有点代码
https://zhuanlan.zhihu.com/p/41655899

if (/(\d+\.jpg)/.test(v)) {
        fs.rename(v, 'baluobo' + RegExp.$1.padStart(6, '0'), () => {})
    }

这个正则 /(\d+\.jpg)/  这个正则会将 .jpg 连带前面的若干个数字一块儿取出来放到组里面。RegExp.$1 就取字符串出来,ru  10.jpg  9.jpg 。经过

padStart()js方法 向前补全字符串,例子中字符串总长度不够补0 ,自行百度此方法。

 拓展:看了这个例子让我以为用传统的方式超级快完成。固然代码是帅的,

结合下方的网友例子。

ren 命令excel
https://www.kafan.cn/A/x3974odonj.html

用cmd  dir 输出此目录全部文件名,复制到xls中,拼接成:  ren 重命名命令。批量执行。完成。

 ren  拔萝卜-10.jpg   baluobo10.jpg

==拓展:

正则表达式引擎

正则表达式是一个很方便的匹配符号,但要实现这么复杂,功能如此强大的匹配语法,就必需要有一套算法来实现,而实现这套算法的东西就叫作正则表达式引擎。简单地说,实现正则表达式引擎的有两种方式:DFA 自动机(Deterministic Final Automata 肯定型有穷自动机)和 NFA 自动机(Non deterministic Finite Automaton 不肯定型有穷自动机)。

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息