正则表达式(Regular Expression)这个东西,之所以感觉难学,是因为几乎所有关于它的教程都很不友好,不是对初学者不友好,是对所有人不友好 —— 也许是因为绝大多数人即便是掌握了这个东西,也觉得实在它没办法对初学者友好罢。 瞬间提高自学能力的诀窍在于两个字: 别怕。 如果非要用四个字的话,就是: 啥都别怕。 不就是学个东西嘛,学不会也不会死人的,学得会是早晚的事情。
正则表达式,其实你之前已经用过,虽然当时你可能完全不明白自己再做什么。 通俗点讲, 正则表达式是用来 匹配 、 捕获 特定字符串的工具;之后,我们还可以对匹配到、捕获到的对象进行处理,比如 替换 。 OK,就这样了罢。这里请注意三个概念:
这两个概念掌握了,可以开始运用了,就算是入门了。入门之后就好办了,边用边学,边犯错边改进,最终达到精通的地步 —— 无论学什么不都是这样吗? 想象一下,我们有这么一串电话号码: 07700 900166 07700 900202 07700 900911 07700 900284 07700 900847 07700 900009 07700 900754 07700 900396 07700 900248 07700 900408 07700 900724 07700 900773 现在我们想把它们变成这样的格式显示: (077)0090-0166 (077)0090-0202 (077)0090-0911 (077)0090-0284 (077)0090-0847 (077)0090-0009 (077)0090-0754 (077)0090-0396 (077)0090-0248 (077)0090-0408 (077)0090-0724 (077)0090-0773 那我们要怎么做才行呢?显然,手动一行一行地弄很麻烦啊!每行都要添加括号,删除空格,在加上减号作为四位分隔符……
在支持正则表达式的编辑器里(Atom 这方面真的很差,Sublimetext 真的强太多了),搜索
仔细看看每一个字符:
现在我们想要让它被替换为
所以,我们在搜索的时候加上了括号 (\d\d\d)(\d\d) (\d\d)(\d\d\d\d) 翻译成自然语言:
差不多了,这就是“入门”,后面你要接着研究:
而后你就反应过来了,上面用的正则表达式,实在是太愚蠢了!那你就想办法用更聪明的呗…… 谁也拦不住你。 还是那句话:反复使用,反复试错,没多久你就真的精通了。 至于深入一步的教程么,Google 喽…… |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|