前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >一看就懂,正则表达式不用背(含案例)!

一看就懂,正则表达式不用背(含案例)!

作者头像
程序员牛肉
发布2024-09-26 13:00:00
发布2024-09-26 13:00:00
27400
代码可运行
举报
运行总次数:0
代码可运行

大家好,我是程序员牛肉。

在开始介绍正则表达式之前,我们先看这样一个字符串:

相信没有接触过正则表达式的同学肯定是一脸懵了。但我要告诉你这串字符串的作用是:匹配和它格式相同的字符串

这玩意有什么格式?会有什么字符串和它格式相同?

其实这就是我们今天要介绍的东西:正则表达式

正则表达式它使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在编程语言文本编辑器中,正则表达式被广泛用于搜索编辑验证处理文本数据

那上面那串字符串匹配的是什么格式呢?

他匹配的是:

以字母开头,长度在6~18之间,只能包含字符、数字和下划线。

各位同学可以尝试一下不使用正则表达式,自己手写一下这个校验规则,看可以看累不累。

我们来看看正则表达式的书写规则:

  • 基本字符匹配:正则表达式中的普通字符(如字母和数字)直接匹配它们自己。例如,正则表达式abc会匹配字符串abc。
  • 特殊字符:某些字符在正则表达式中有特殊含义,如.(匹配任意单个字符,除了换行符),*(匹配前面的元素零次或多次),+(匹配前面的元素一次或多次),?(匹配前面的元素零次或一次)。
  • 字符类:使用[]可以定义一个字符类,匹配括号内的任何单个字符。例如,[abc]可以匹配a、b或c。
  • 否定字符类:在字符类中使用^作为第一个字符,表示匹配不在括号内的任何单个字符。例如,[^abc]可以匹配除了a、b和c之外的任何单个字符。
  • 预定义字符类:正则表达式提供了一些预定义的字符类,如\d(匹配任意数字),\w(匹配任意字母数字字符,包括下划线),\s(匹配任意空白字符)。
  • 量词:量词用来指定前面的元素出现的次数。除了*、+和?之外,还可以使用{n}(恰好n次),{n,}(至少n次),{n,m}(n到m次)。
  • 分组:使用圆括号()可以将多个元素作为一个单元进行匹配,并且可以对这些匹配的文本进行捕获。例如,(ab)+可以匹配一个或多个连续的ab。
  • 选择:使用竖线|表示逻辑或,允许模式在多个选项中进行选择。例如,cat|dog可以匹配cat或dog。
  • 转义特殊字符:如果需要匹配正则表达式中的特殊字符本身,需要使用反斜杠\进行转义。例如,要匹配星号*,可以使用\*。
  • 修饰符:修饰符用来改变正则表达式的匹配行为,如i(忽略大小写),g(全局匹配),m(多行匹配)。
  • 贪婪与懒惰匹配:默认情况下,量词是贪婪的,尽可能多地匹配字符。在量词后面加上?,可以使其变为懒惰的,尽可能少地匹配字符。例如,a.+?b会尽可能少地匹配a和b之间的字符。
  • 断言:断言是一种匹配条件,它不消耗字符。有^(行的开始),$(行的结束),\b(单词边界),\B(非单词边界)等。
  • 后向引用:通过引用之前捕获的分组,可以进行复杂的匹配。例如,(\w+)\s\1可以匹配重复的单词。

这些不用背诵,大家写的时候现查就好了。

常用

IN JULY

正则表达式

只能输入汉字

代码语言:javascript
代码运行次数:0
复制
[\u4e00-\u9fa5]{0,}

验证Email地址

代码语言:javascript
代码运行次数:0
复制
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

验证Internet URL

代码语言:javascript
代码运行次数:0
复制
[http|https]://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?

验证电话号码

代码语言:javascript
代码运行次数:0
复制
(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}

验证身份证号(15位或18位数字)

代码语言:javascript
代码运行次数:0
复制
\d{15}|\d{18}

验证一年的12个月

代码语言:javascript
代码运行次数:0
复制
(0?[1-9]|1[0-2])

验证一个月的31天

代码语言:javascript
代码运行次数:0
复制
((0?[1-9])|((1|2)[0-9])|30|31)

以上就是一些比较常用的正则表达式。

相信通过我的介绍,你已经大致了解什么是“正则表达式”以及正则表达式要如何书写。希望我的文章可以帮到你。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员牛肉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档