正则表达式 学习

Posted IT_Holmes

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式 学习相关的知识,希望对你有一定的参考价值。

文章目录

1. 正则表达式(Regular Expression)


正则表达式是用来提高效率的。

常用的几个字符作用:

  • ^ 为匹配输入字符串的开始位置。
  • + 匹配一个或者多个内容。例如: [0-9] 匹配单个数字,[0-9]+匹配多个数字。
  • $ 为匹配输入字符串的结束位置。abc$匹配字母 abc 并以 abc 结尾。

使用了正则表达式可以更加灵活的操作一些内容。

2. 正则表达式语法: + ,* ,?


+ 号代表前面的字符必须至少出现一次(1次或多次):

  • 例如:itholm+es ,可以匹配 itholmes,itholmmmes等等。
  • 相当于把m+看成一块内容,匹配的有m,mm,mmm等等。

* 号代表前面的字符可以不出现,也可以出现一次或者多次(0次、或1次、或多次):

  • 例如:itholm*es,可以匹配 itholes , itholmes,itholmmes等等。
  • 同理把m*看成一体,可以没有m,可以有一个m,可以有多个m等等。

? 问号代表前面的字符最多只可以出现一次(0次或1次):

  • 例如:itholm?es,就只能匹配itholes , itholmes。
  • 同样把m?看为一体,只能没有m,可以有一个m。

3. 正则表达式语法 […]


匹配 /[...]/g 中的所有字符:

  • 例如:[abc] , 匹配全部的a,b,c字符。

匹配除了 /[^...]/g 中字符的所有字符:

  • 例如:[^abc] , 匹配除了a,b,c字符的所有字符。

/[A-Z]/g 表示一个区间,匹配所有大写字母,/[a-z]/g 表示所有小写字母:

  • [A-Z]匹配所有的大写字符,[a-z]匹配所有的小写字符。

/./g 匹配除换行符(\\n、\\r)之外的任何单个字符,相等于 [^\\n\\r]

  • \\r是回车,前者使光标到行首,(carriage return)
  • \\n是换行,后者使光标下移一格,(line feed)
  • \\r 是回车,return \\n 是换行

/[\\s]/g/[\\S]/g

  • \\s 是匹配所有空白符,包括换行,\\S 非空白符,不包括换行。

/\\w/g 匹配字母、数字、下划线。等价于 /[A-Za-z0-9_]/g

  • 适用于登录场合等等。

4. 非打印字符


像\\f,\\n等等非打印字符,都可以通过正则表达式来查找。

5. 特殊字符


6. 限定符



需要注意格式:
举个例子: /[1-9][a-z][A-Z][0-9]*[a-z]*/g 解释如下:

上面匹配的内容:

  • 第一个字符1到9
  • 第二个字符a到z
  • 第三个字符A到Z
  • 第四个0到9,但是因为有* 所以是0到9以及后面多个数字(也是0-9的)。
  • 第五个a到z,同样也是有* 所以是a到z以及后面多个字符(也是a-z的)。

总结起来就是一一对应,注意特殊字符的含义!


设置0~99的两位数的正则表达式:

  • /[0-9]1,2/ 匹配[0-9]的一位数或者两位数。
  • 这种匹配方式的缺点是:只能匹配两位数字,而且可以匹配 0、00、01、10 99 的章节编号仍只匹配开头两位数字。

改进:

  • /[1-9][0-9]?/ 或者 /[1-9][0-9]0,1/, 这样就可以避免上面的内容了。

7. 贪婪和非贪婪


* 和 + 限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个 ? 就可以实现非贪婪或最小匹配。

8. 定位符


9. 选择


用圆括号 () 将所有选择项括起来,相邻的选择项之间用 | 分隔。

() 表示捕获分组,() 会把每个分组里的匹配的值保存起来。

之后就是?=、?<=、?!、?<! 的使用。

https://www.runoob.com/regexp/regexp-syntax.html

10. 正则表达式 修饰符


11. 元字符 和 正则表达式的优先级


*元字符就是上面说到的一系列的字符,\\ ,^ $,等等。

优先级越是在外面包裹的字符优先级越高。

以上是关于正则表达式 学习的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式

js正则表达式

求javascript正则表达式,不允许用户输入斜杠尖括号等特殊符号,只允许输入数字,字母,汉字.

python输出连续的字母正则表达式

js正则表达式

准备工作(正则表达式学习)