微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

unity3D学习3——正则表达式 图文并茂 10分钟完美通关 !!!

说道正则表达式大家都知道这个功能很强大,但是大家在学习的过程中又是一头雾水。因为那些符号和字符有点深奥,作者也是这样子的。

我在学习正则表达的过程中,有三个疑惑的点:

  • 第一:在学习的过程中,如何去边学习边实践,致知于行呢?
  • 第二:为什么表达式要这么写
  • 第三:为什么输入一个字符串,经过正则表达式函数后,输出就是这个结果。

针对第一点,推荐一个正则表达式在线测试工具:regex101.com,另外也可以自己编程调用正则表达式的API来进行验证。

在这里插入图片描述

正则表达式其实就是在执行搜索时的格式,它由一些字母和数字组合而成。 例如:一个正则表达式 the,它表示一个规则:由字母t开始,接着是h,再接着是e。

"the" => The fat cat sat on the mat.

1、正则表达式的主要依赖——元字符

元字符描述
.句号匹配任意单个字符除了换行符。
[ ]字符种类。匹配方括号内的任意字符。
[^ ] 否定的字符种类。匹配除了方括号里的任意字符
*匹配>=0个重复的在*号之前的字符。
+匹配>=1个重复的+号前的字符。
?标记?之前的字符为可选.
{n,m}匹配num个大括号之前的字符或字符集 (n <= num <= m).
(xyz)字符集,匹配与 xyz 完全相等的字符串.
|或运算符,匹配符号前或后的字符.
\转义字符,用于匹配一些保留的字符 [ ] ( ) { } . * + ? ^ $ \ |
^从开始行开始匹配.
$从末端开始匹配.
  • 或运算符:a (cat|dog),a 后面可以匹配cat或者dog。中间的括号必不可少。

    在这里插入图片描述

  • 花括号:输入 /ab{2,4}c,表示a和c之间的b可以出现2个到4个。

    在这里插入图片描述

    {2,}表示可以是2或2个以上的b

    在这里插入图片描述

  • 锚点
    在正则表达式中,想要匹配指定开头或结尾的字符串就要使用到锚点。^ 指定开头,$ 指定结尾。

^ 用来检查匹配的字符串是否在所匹配字符串的开头。

在这里插入图片描述

在这里插入图片描述

$ 号 用来匹配字符是否是最后一个

在这里插入图片描述

2、重复次数

后面跟着元字符 +,* or ? 的,用来指定匹配子模式的次数。 这些元字符在不同的情况下有着不同的意思。

  • 加号:输入:/(ab)+c,表示ab可以出现多次或1次,后面还要有c。 >=1

  • 问号:输入:/ab?c,可以匹配一个或零个字母b ,可有可无

    在这里插入图片描述

  • 星号:输入:/ab*c,可以匹配前面的字母b, 可以是1个b,多个b,没有b。 >=0

    在这里插入图片描述

2、 字符类

  • 字符类——方括号:输入:/[abc]+,匹配与abc相关的单词。只要出现abc的字母就会匹配。

    在这里插入图片描述


    指定字符的范围

输入:
[a-z]+,匹配所有带小写字母的
[A-Z]+:匹配所有大写字母的
[0-9]+:匹配所有带有数字的

在这里插入图片描述

[^0-9]+:表示匹配所有的非数字字符,包括换行符

在这里插入图片描述

  • 字符类——元字符
    正则表达式为我们预先定义好了一系列的常用字符类型,比如数字,空白符,单词开头和结尾等。大部分元字符都是以反斜杠开头。大写表示反义

  • 简写字符集

简写描述
.除换行符外的所有字符
\w除换行符外的所有字符
\W匹配所有非字母数字,即符号,等同于: [^\w]
\d匹配数字: [0-9]
\D匹配非数字: [^\d]
\s匹配所有空格字符,等同于: [\t\n\f\r\p{Z}]
\S匹配所有非空格字符: [^\s]
\f匹配一个换页符
\n匹配一个换行符
\r匹配一个回车符
\t匹配一个制表符
\v匹配一个垂直制表符
\p匹配 CR/LF(等同于 \r\n),用来匹配 DOS 行终止符

4、贪婪匹配和懒惰匹配

正则表达式认采用贪婪匹配模式,在该模式下意味着会匹配尽可能长的子串。
只匹配所有的<html>标签, +和.可以匹配出两个html之间的所有字符串。

在这里插入图片描述


加上?之后,为懒惰模式。

在这里插入图片描述

5 实战

匹配所有的RGB值

step1 首先前面要加上#,

在这里插入图片描述

step2 接下来后面可以是数字,字母等字符,但是只能限定在0-9和A-F,a-f之间

在这里插入图片描述

step3 长度为6

在这里插入图片描述

step4 后面就是单词的边界了,不能再有其他单词,叫\b

最后结果如下:

在这里插入图片描述

匹配IP地址

在这里插入图片描述


上面这样写对于256这种不合法的IP地址过滤不掉,需要将数字大小限定在255以内。

改进方法
step1 : 数字部分 : 大于200的, (25[0-5])|(2[0-4]\d) 小于200的,[01]?\d\d?

在这里插入图片描述

step2: 加上 . : .

在这里插入图片描述


step3: 重复三次,在后面加上数字

在这里插入图片描述


在这里插入图片描述

step4: 可以看到前面有数字小数点无法过滤,所有还需要加上^和$

在这里插入图片描述


在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐