正则表达式是个啥

正则表达式,嗯,听起来就是个狂拽炫酷屌炸天的东西。

前些天有运营 MM 问小鸡君,正则表达式是个啥啊?懂技术的同学可能会想,你个运营管啥是正则表达式干啥?

然而,事情并不是酱紫的。正则表达式并不仅仅应用在撸码过程中,而是在很多地方都有应用,比如运营最经常关注的百度统计中的子目录设置:

在匹配目录的时候就可以选择使用正则表达式来匹配。

那么到底什么是正则表达式呢?其实就是用一串抽象的字符串,来匹配一系列字符串的东西。相当于在一堆字符串中总结了规律,提取了中心思想等等。

正则表达式不但是一种技术,更是一种抽象思维能力,这种模式匹配的思想可以用在生活中的很多地方。

我们来看几个简单的字符模式:

最简单的就是一个英文句点,它可以代表任意字符。而 \d 就代表一个数字,\d{1, 3} 就代表1到3个数字。

假设我们想匹配最常见的手机号码,不考虑国外的包含区域码的,那么根据国内运营商号码的混乱情况以及可扩展的需求,只要是1开头的11位数字,我们就可以当作是合法的手机号了,那么用正则表达式表示就是:

1\d{10}

是不是很简单呢?那么有的同学要问了,我有了这个表达式在哪里使(zhuang)用(bi)呢?

前面已经讲过了,百度的统计里面的子目录统计设置就是支持正则表达式的。另外,稍微高级一点的编辑器也是支持的:

不过,正则表达式最大的作用当然还是在程序语言中,以网页开发中常用的 Javascript 为例,就提供了好几个关于正则表达式的方法:

对应的例子(->后为输出结果):

好了,小鸡君向来不深入讲解技术,从来都是浅!尝!辄!止!

到了这里相信无论是否开发人员,是否会写代码,都可以对正则表达式有一点了解了,那么如果你想深入了解的话,去网上随便搜一下正则表达式,就有大把的教程,比如《正则表达式30分钟入门教程》就很不错。

如果还想更深入地学习,那么推荐《精通正则表达式》和《正则表达式经典实例》这两本。

如果只想知道它是个啥,那读到这里就够了。

原文发布于微信公众号 - 姬小光(hi-laser)

原文发表时间:2015-12-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏進无尽的文章

面向对象设计中类的关系

所谓的设计正是采用恰当的方式组织类关。因此谈设计我认为首先要从类之间的关系开始说起.

32050
来自专栏Phoenix的Android之旅

什么是策略模式

策略模式应该是Java设计模式中最简单的一种模式, 它的核心思想是,一个类的行为可以在运行时动态改变,有不同的实现逻辑。

9730
来自专栏java工会

深度思考编程的艺术

17980
来自专栏nimomeng的自我进阶

探索命名之美(二)

大家在编码或者读代码的过程中,对于什么样的命名是好的命名可能认知不是特别清晰,但是对于什么样的命名是坏的命名应该一目了然,他们包括:

8620
来自专栏斑斓

代码诊所的第二次诊断

几年前,我有机会负责一个项目的咨询。团队很小,目标是对旧有系统的后端用Java改写,而团队的开发人员全为C程序员。我的工作职责是负责项目设计、开发,以及担任项目...

36050
来自专栏CDA数据分析师

飞跃式发展的后现代 Python 世界

如果现代Python有一个标志性特性,那么简单说来便是Python对自身定义的越来越模糊。在过去的几年的许多项目都极大拓展了Python,并重建了“Python...

22560
来自专栏阿杜的世界

《重构》阅读笔记-代码的坏味道

开发者必须通过实践培养自己的经验和直觉,培养出自己的判断力:学会判断一个类内有多少个实例变量算是太大、学会判断一个函数内有多少行代码才算太长。

7620
来自专栏CDA数据分析师

震惊小伙伴的Python单行代码

几年前,函数式编程的复兴正值巅峰,一篇介绍 Scala 中 10 个单行函数式代码的博文在网上走红。很快地,一系列使用其他语言实现这些单行代码的文章也随之出现,...

23170
来自专栏Java技术分享圈

给一些想要学习Java同学的一些建议

最近在授课过程中,发现了各式各样学生在学习Java时遇到的问题。有同学会问我:“杨老师,Java可以自学吗”,这就好像一千个人心中有一千个哈利波特一样,这个答案...

21010
来自专栏老九学堂

学习C语言的用途以及如何快速掌握C语言

C是基础的语言 被广泛用于操作系统和编译器的开发 功能非常强 虽然现在不是最流行但它是 最基础的东西 也是比较好学的语言 如:金山的创始人江明 从30...

45770

扫码关注云+社区

领取腾讯云代金券