正则表达式浅析

71 阅读1分钟

引言

正则表达式(Regular Expression)是一种文本模式,由普通字符(例如a~z之间的字母)和特殊字符(又称元字符)组成。它可以快速检测一个字符串是否包含有某种子串、将匹配的子串替换或者从某个字符串中取出符合某个条件的子串。

语法

普通字符

字符说明
[ABC]匹配[...]中所有的字符。例如[ab]匹配字符串 "abc" 中的ab 字符。
[^ABC]匹配除了[...]中所有的字符。例如[ab]匹配字符串"abc"中的 c 字符。
[A-Z]表示一个区间,匹配所有的大写字母,[a-z] 同理
.匹配除换行符(\n, \r)之外的所有字符
\w匹配字母。数字。下划线,等价于[0-9a-zA-z_]

特殊字符

字符说明
$匹配字符串结尾的位置,例如[ab$]匹配 "cab" 中的 "ab"
()标记子表达式的开始和结束位置
*匹配零次或多次
+匹配一次或多次
[标记一个中括号表达式的开始
?匹配零次或一次
匹配输入字符串开始的位置,若出现在[]内,则表示不接受[]内的字符
|两项之间的一个
}限定符表达式的开始位置,例如 [a-z]{2},匹配确定的 2 次

应用

常见的应用如邮箱匹配,邮箱常见的格式为 "名称@域名" ^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$