引言
正则表达式(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_-]+)+$