3

正则表达式基础总结

 3 years ago
source link: https://www.junz.org/post/regex_tutorial/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

什么是正则表达式

正则表达式简单来理解就是一个字符串,它可以看作一个规则.通过它我们可以提取一个文本中一些具有相同模式的字符串,或者验证所给字符串是否符合要求等. 比如我们想提取一个文件中所有的电话号码,或者前端判断所给数据,如身份证号码是否合法,有无少输等,这时候正则表达式便起到了很大作用.

元字符 含义 . 匹配任意单个字符除了换行符 * 匹配>=0个重复的字符 + 匹配>=1个重复的字符 $ 表示末尾 ^ 表示开头 | 或运算符,匹配符号前或后的字符 ? 非贪婪匹配 \ 转义字符,用于匹配一些保留的字符 (xyz) 字符集,匹配与 xyz 完全相等的字符串 {m,n} 匹配m到n个大括号之前的字符

我们可以用[]来指定一个字符集,用连字符来指定字符集的范围

  • [a-z]表示匹配所有小写字母
  • [0-9]表示匹配所有数字

否定字符集

^用在字符集中的时候,表示否定的意思

[^0-9]表示匹配所有非数字

简写字符集

正则表达式内置了一些常用的字符集

名称 含义 \w 匹配所有字母数字 \W 匹配所有非字母数字 \d 匹配数字 \D 匹配非数字 \n 匹配一个换行符 \r 匹配一个回车符 \t 匹配一个制表符 \s 匹配所有空格字符 \S 匹配所有非空格字符
  • *表示重复次数大于等于0
  • +表示重复次数大于等于1
  • ?表示重复次数为0或1
  • {n}表示重复n次,{m,n}表示重复m到n次

(...)表示括号中的所有字符不可分割,而是作为一个整体参加匹配

常用正则表达式

^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$
^1(3|4|5|6|7|8|9)\d{9}$
^((http:\/\/)|(https:\/\/))?([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}
((?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d))

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK