个人笔记 - 正则表达式

介绍

正则表达式(Regex)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。 – 维基百科

Jupyter 版

例子在 Jupyter Notebook 中展示更清晰些,所以就直接上传了 Jupyter 版本的。<html版本> <原始版本>

用法

文本编辑器替换

使用 $1 代替某一组。

如替换隐藏手机号中间四位,查找正则为 (\d{3})(\d*)(\d{4}),替换为 $1****$3

Java 端也采用此方法。

// 手机号隐藏中间4位:
public static String hidePhone(String phone){
  return phone.replaceAll("(\\d{3})(\\d*)(\\d{4})", "$1****$3");
}

常用正则表达式

中文[\u4e00-\u9fa5]

匹配某个字符在最后一次出现的位置[^字符]+$

匹配不在引号里的逗号,(?=([^\"']*[\"'][^\"']*[\"'])*[^\"']*$)

概括字符集

字符 含义
\d [0-9]
\D [^0-9]
\w [A-Za-z0-9_]
\W [^A-Za-z0-9_]
\s 空白字符
\S 非空白字符
. 匹配除换行符\n之外其他所有字符
\t 匹配 TAB 键

推荐

regexper 这个网站可以帮助你更直观的展示正则表达式的逻辑。


Last modified on 2020-06-05