- ^:匹配开始
- $:匹配结尾
- *:匹配前面的字符0次、1次或者多次
- +:匹配前面的字符1次或者多次
- ?:匹配前面的字符0次或者1次
- . :匹配除换行符 之外的任何单字符
- (): 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。如果要匹配字符( ),可以使用 ( 和 )
- { :标记限定符表达式的开始
- { :标记一个中括号表达式的开始
- | :指明两项之间的一个选择
- {n}:n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o
- {n,}:n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
- {m,n}:m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。
例子1:
在写用户注册表单时,只允许用户名包含字符、数字、下划线和连接字符(-),并设置用户名的长度3-15个字符,我们就可以使用以下正则表达式来设定。
例子2:
如下,我们要将请求头变为字典形式的数据
例子3:
<H1>Chapter 1 - 介绍正则表达式</H1>
匹配< >之间的所有数据:<.*>
只匹配开始和结束的<>标签:<.*?>
只匹配开始的<>标签:^<.*?>