regex
非打印字符
# 换行符
\n
# 回车符
\r
# 匹配空白字符
\s
# 匹配非空白字符
\S
# 匹配制表符
\t
# 匹配垂直制表符
\v
# 匹配一个单词边界'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'
\b
# 匹配非单词边界
\B
# 匹配一个数字字符
\d
# 匹配非数字字符
\D
特殊字符
# 匹配输入字符的结尾位置
$
# 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用
()
# 匹配前面的子表达式零次或多次
*
# 匹配前面的子表达式一次或多次
+
# 匹配除换行符 \n 之外的任何单字符
.
# 标记一个中括号表达式的开始
[
# 字符集合。匹配所包含的任意一个字
[xyz]
# 字符范围。匹配指定范围内的任意字符
[a-z]
# 匹配任何数字。类似于 [0123456789]
[0-9]
# 匹配任何不在指定范围内的任意字符
[^a-z]
# 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符
?
# 字符转义
\
# 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合
^
# 标记限定符表达式的开始, 标记字符出现次数
{
# n 是一个非负整数。匹配确定的 n 次
{n}
# 指明两项之间的一个选择
|
# 匹配x或y
x|y
限定符
# 匹配0次或多次
*
# 匹配1次或多次
+
# 匹配0次或一次
?
# 匹配确定的n次
{n}
# 至少匹配n次
{n,}
# 最少匹配n次且最多匹配m次
{n, m}
贪婪与非贪婪
# 贪婪模式匹配
# 例子<h1>test</h1>
# 表达式匹配从开始小于符号 (<) 到关闭 h1 标记的大于符号 (>) 之间的所有内容。
# 匹配<h1>test</h1>全部
/<.*>/
非贪婪模式匹配
# 只需要匹配开始和结束 h1 标签,下面的非贪婪表达式只匹配 <h1>。
/<.*?>/
正则分组
# 分组是用圆括号“()”括起来的正则表达式,匹配出的内容就表示一个分组
# 区号-电话号
(\d{3,4})\-(\d{6,8})
匹配第一个:
line1:blabla:etcetc
line2:blabla2:etcetc2
line3:blabla3:etcetc3
^([^:]*):