加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则简单介绍

发布时间:2020-12-14 01:48:50 所属栏目:百科 来源:网络整理
导读:正则简单介绍 什么是正则呢? 正则是一种文本处理的库。它是按照一定的规则处理字符串,得到我们想要的结果。现代社会很大一部分信息是以文本形式呈现的,掌握正则,你能玩转文本的世界,大有可为。 正则的本质: 按照一定规则处理文本的类库,其实我们也可
正则简单介绍

什么是正则呢? 正则是一种文本处理的库。它是按照一定的规则处理字符串,得到我们想要的结果。现代社会很大一部分信息是以文本形式呈现的,掌握正则,你能玩转文本的世界,大有可为。 正则的本质: 按照一定规则处理文本的类库,其实我们也可以用你熟悉的语言去重写制定规则,写一个文本处理的类库。 正则类库 常用的正则库有pcre,posix等等。学会使用一种库,明白他的思想,你很容易学习另外一种库,他们语法差别不是太大。我们这里以preg为例, 正则是一种规则,遵循规则做事就能得到你想要的。 正则的学习 合适的学习工具让你事半功百: 推荐RegexTest 学习正则前得有一个观念: 正则的规则可以标识一切的文本。 正则的基础元字符: 基本字符 除换行符外的任意字符 w 字母数字下划线或汉字 s 空白符 d 匹配数字 b 开始或者结束 ^ 字符串开始 $ 字符串结束 量词 -范围 [] 括号中的任意字符 + 1个以上 * 任意个数的 ? 有或者没有 {m} m个 {m,n}m到n个 {m,}m以上个 量词表示数量

基本字符可以表示单个的所有的字符串。 我们可以说说字符串的组成,比如java这个字符串就是由四个字符 j a v a组成的 最直接的表示java 直接这么写就行。看到没这样就行 我们可以用基本字符表示为:wwww 如果使用量词,w+ 更清晰的表示w{4}

元字符加上量词你就能描述所有的字符串啦。

我们再进一步。如果要从字符串中找到 javajavejevejavejbvbjsvs 中找到jave,java,jeve这三个字符串呢? 可以用到方括号了:j[ae]v[ae]

你可以选择方括号里面的任意一个字符串。 如果不想匹配java,只想匹配其他的类似的字符串:j[^a]v[aebs]

^标识否定的 例如数字为[d] 非数字[^d]

如果说[]标识或那么()表示且了,()别名叫分组 比如我们要找到j后面紧跟ave三个单词的字符j(ave)

特殊的情况加入字符串javajave[jevejave 含有[这个字符串我们应该如何表示呢? 没错这个时候就必须用上转义符号,比如[在正则里面表示为[了。

量词里面又会分为贪婪,懒惰模式 *? +? ?? {n,m}? {n}?加上一个问号就成了懒惰模式,尽量少的匹配 javajavejevejavejbvbjsvs 比如 jav.下是整个串 jav.?加上问号后是javajavejevejave

掌握了上述的语法你就能够熟练的使用正则啦。 什么邮箱验证,什么电话号码验证,什么其他的都是浮云啦。

更进一步更多的规则 捕获 测试字符串:javajavejavajevejavejbvbjsvs (exp)一个括号代表一个分组,捕获文本到分组里面 正则(java)(.)(java) 都在分组里面 (? exp) 捕获的分组名称为<>里面的字符串 (java)(? . )(java) 给分组命名为ssss (?:exp)不捕获分组 (java)(?:.*)(java)不再捕获分组

反向引用 比如我要匹配javajavejavajevejavejbvbjsvs java与java中间的字符串 你可以java(.)java 你也可以(java)(.)1 匹配第一个分组匹配到的文档 n标识第n个分组

零宽断言 i'm sing while you're dancing (?=exp) 匹配exp前面的部分 以ing结尾的字符 bw+(?=ingb) (?<=exp)exp匹配exp后面的位置 以s开头的字符(?<=s)w+b (?!exp) 匹配后面不能匹配exp的 b((?!ing)w)+b (?<!exp)匹配前面不能匹配exp的 b((?!you)w)+b

掌握上边一些特性依旧掌握了正则的百分之八十了。

此外还有正则表达式的常用模式了。 i 忽略大小写 m 多行匹配 s 点号通配模式 U 懒惰模式 D结尾限制模式 u 支持UTF-8转义表达

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读