白衣苍狗

天上浮云似白衣,斯须改变如苍狗

0%

正则表达式

正则表达式就是一种对字符串的表述规则,比如一串数字一串字符但不包含数字以A开头的字符串等等。 正则表达式中有两类主要的符合,一种是表达字符类型的,比如字母,数字之类,另一种是表达数量的,也就是量词,比如出现一次这样的。

字符

1.基本字符

所有ASCII字符,比如a,1,_等,但是有些符号需要\转义

2.字符集

  1. a-z形如这样的表示a-z中任何一个字符都可以 2.[ab123]形如这样的表示ab123中任何一个字符
  2. .表示任何一个字符,但是不包括换行符
  3. [^a]表示除了a其他字符都可以
  4. 还有一些预定义的字符集
字符集 含义
\d 数字 [0-9]
\D [^\d]
\w [a-zA-Z0-9_]
\W [^\w]
\s 所有空格字符
\S [^\s]

量词

量词总是修饰量词前的一个实体(字符,字符集,组)

量词 含义
* >=0次
+ >=1次
? 0或1次
{m} m次
{n,m} n<=num<=m num代表次数

组合

可以通过()将一组字符作为一个整体描述就像一个字符那样去作用,比如(the)就是将the看作一个整体 表示或,ab表示a或者b都可以,一般和()一起使用

其他

正则表达式基本规则就这些,也就是字符和量词组合起来表述一种字符串规则,还有一些标志用到时候再补充吧。

一些正则表达式

写的一些正则表达式,记录一下

  1. ip匹配(可能将部分字符串作为ip,如355.0.0.1->55.0.0.1)

    1
    2
    ((\d\d{2}([01]\d{2}2([0-4]\d5[0-5])))\.){3}(\d\d{2}([01]\d{2}2([0-4]\d5[0-5])))
    (([01]?\d?\d2([0-4]\d5[0-5]))\.){3}([01]?\d?\d2([0-4]\d5[0-5]))

    2.判断一个字符串是否是ip地址(只能包含ip地址,不能有任何额外字符)

    1
    ^(([01]?\d?\d2([0-4]\d5[0-5]))\.){3}([01]?\d?\d2([0-4]\d5[0-5]))$