正则表达式是由普通字符(例如字符a~z)以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。可以通过在一对分隔符之间放入表达式模式的各种组件来构造一个正则表达式,即/expression/。 正则表达式有多种不同的风格。
特殊含义的元字符:
\d : 0-9之间的任意一个数字 \d只占一个位置
\w : 数字,字母 ,下划线 0-9 a-z A-Z _
\s : 空格或者空白等
\D : 除了\d
\W : 除了\w
\S : 除了\s
. : 除了\n之外的任意一个字符
\ : 转义字符
| : 或者
() : 分组
\n : 匹配换行符
\b : 匹配边界 字符串的开头和结尾 空格的两边都是边界 => 不占用字符串位数
^ : 限定开始位置 => 本身不占位置
$ : 限定结束位置 => 本身不占位置
[a-z] : 任意字母 []中的表示任意一个都可以
[^a-z] : 非字母 []中^代表除了
[abc] : abc三个字母中的任何一个 [^abc]除了这三个字母中的任何一个字符
次数的量词元字符:
* : 0到多个
+ : 1到多个
? : 0次或1次 可有可无
{n} : 正好n次;
{n,} : n到多次
{n,m} : n次到m次
普通字符由所有那些未显式指定为元字符的打印和非打印字符组成。这包括所有的大写和小写字母字符、所有数字、所有标点符号及一些符号。 POSIX RE用于方括号外的元字符如表C-1所示。
特别字符 | 说 明 |
$ | 匹配输入字符串的结尾位置。如果设置了RegExp 对象的Multiline属性,则$也匹配'\n'或'\r'。 要匹配$字符本身,请使用\$ |
( ) | 标记一个子表达式的开始和结束位置。子表达式可 以获取供以后使用。要匹配这些字符,请使用\(和 \) |
* | 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \* |
+ | 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+ |
. | 匹配除换行符\n之外的任何单字符。要匹配 .,请使用 \ |
[ | 标记一个中括号表达式的开始。要匹配 [,请使用 \[ |
? | 匹配前面的子表达式零次或一次,或指明一个非 贪婪限定符。要匹配 ? 字符,请使用 \? |
\ | 将下一个字符标记为或特殊字符、或原义字符、 或向后引用、或八进制转义符。例如,“n”匹 配字符“n”。“\n”匹配换行符。序列“\\”匹 配“\”,而“\(”则匹配“(” |
^ | 匹配输入字符串的开始位置,除非在方括号表达式 中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^ |
{ | 标记限定符表达式的开始。要匹配{,请使用\{ |
| | 指明两项之间的一个选择。要匹配|,请使用\| |
POSIX RE用于方括号内的元字符,如表C-2所示。
特别字符 | 说 明 |
\ | 转义字符 |
^ | 非 |
- | 用于指定字符范围 |
发表评论