正则表达式简介(5-8)
程序员文章站
2022-08-10 20:50:03
5.建立正则表达式
构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与操作符将小的表达式结合在一起来创建更大
的表达式。
可以通过在一对分隔符之间放入表达式模式的各种来构造一...
5.建立正则表达式
构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与操作符将小的表达式结合在一起来创建更大
的表达式。
可以通过在一对分隔符之间放入表达式模式的各种来构造一个正则表达式。对 visual basic scripting edition 而
言,分隔符为一对正斜杠 (/) 字符。例如:
/expression/
对 vbscript 而言,则采用一对引号 ("") 来确定正则表达式的边界。例如:
"expression"
在上面所示的两个示例中,正则表达式模式 (expression) 均存储在regexp 对象的pattern 属性中。
<<------------------------------------------------------>>
6.优先权顺序
在构造正则表达式之后,就可以象数学表达式一样来求值,也就是说,可以从左至右并按照一个优先权顺序来求值。
下表从最高优先级到最低优先级列出各种正则表达式操作符的优先权顺序:
操作符 描述
转义符
(), (?:), (?=), [] 圆括号和方括号
*, +, ?, {n}, {n,}, {n,m} 限定符
^, $, anymetacharacter 位置和顺序
| “或”操作
<<---------------------------------------------------------->>
7.普通字符
普通字符由所有那些未显式指定为元字符的打印和非打印字符组成。这包括所有的大写和小写字母字符,所有数字,所有
标点符号以及一些符号。
最简单的正则表达式是一个单独的普通字符,可以匹配所搜索字符串中的该字符本身。例如,单字符模式 a 可以匹配所
搜索字符串中任何位置出现的字母 a。这里有一些单字符正则表达式模式的示例:
/a/
/7/
/m/
等价的 vbscript 单字符正则表达式为:
"a"
"7"
"m"
可以将多个单字符组合在一起得到一个较大的表达式。例如,下面的 visual basic scripting edition 正则表达式不是
别的,就是通过组合单字符表达式 a、7以及 m 所创建出来的一个表达式。
/a7m/
等价的 vbscript 表达式为:
"a7m"
请注意这里没有连接操作符。所需要做的就是将一个字符放在了另一个字符后面。
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
8.特殊字符
有不少元字符在试图对其进行匹配时需要进行特殊的处理。要匹配这些特殊字符,必须首先将这些字符转义,也就是在前
面使用一个反斜杠 ()。下表给出了这些特殊字符及其含义:
特殊字符 说明
$ 匹配输入字符串的结尾位置。如果设置了 regexp 对象的 multiline
属性,则 $ 也匹配 或 。要匹配 $ 字符本身,请使用 $。
( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。
要匹配这些字符,请使用 ( 和 )。
* 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。
+ 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。
. 匹配除换行符 之外的任何单字符。要匹配 .,请使用 。
标记一个中括号表达式的开始。要匹配 [,请使用 [。
? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ?
字符,请使用 ?。
将下一个字符标记为或特殊字符、或原义字符、或后向引用、或八进制
转义符。例如, n 匹配字符 n。 匹配换行符。序列 \ 匹
配 "",而 ( 则匹配 "("。
^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示
不接受该字符集合。要匹配 ^ 字符本身,请使用 ^。
{ 标记限定符表达式的开始。要匹配 {,请使用 {。
| 指明两项之间的一个选择。要匹配 |,请使用 |。
构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与操作符将小的表达式结合在一起来创建更大
的表达式。
可以通过在一对分隔符之间放入表达式模式的各种来构造一个正则表达式。对 visual basic scripting edition 而
言,分隔符为一对正斜杠 (/) 字符。例如:
/expression/
对 vbscript 而言,则采用一对引号 ("") 来确定正则表达式的边界。例如:
"expression"
在上面所示的两个示例中,正则表达式模式 (expression) 均存储在regexp 对象的pattern 属性中。
<<------------------------------------------------------>>
6.优先权顺序
在构造正则表达式之后,就可以象数学表达式一样来求值,也就是说,可以从左至右并按照一个优先权顺序来求值。
下表从最高优先级到最低优先级列出各种正则表达式操作符的优先权顺序:
操作符 描述
转义符
(), (?:), (?=), [] 圆括号和方括号
*, +, ?, {n}, {n,}, {n,m} 限定符
^, $, anymetacharacter 位置和顺序
| “或”操作
<<---------------------------------------------------------->>
7.普通字符
普通字符由所有那些未显式指定为元字符的打印和非打印字符组成。这包括所有的大写和小写字母字符,所有数字,所有
标点符号以及一些符号。
最简单的正则表达式是一个单独的普通字符,可以匹配所搜索字符串中的该字符本身。例如,单字符模式 a 可以匹配所
搜索字符串中任何位置出现的字母 a。这里有一些单字符正则表达式模式的示例:
/a/
/7/
/m/
等价的 vbscript 单字符正则表达式为:
"a"
"7"
"m"
可以将多个单字符组合在一起得到一个较大的表达式。例如,下面的 visual basic scripting edition 正则表达式不是
别的,就是通过组合单字符表达式 a、7以及 m 所创建出来的一个表达式。
/a7m/
等价的 vbscript 表达式为:
"a7m"
请注意这里没有连接操作符。所需要做的就是将一个字符放在了另一个字符后面。
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
8.特殊字符
有不少元字符在试图对其进行匹配时需要进行特殊的处理。要匹配这些特殊字符,必须首先将这些字符转义,也就是在前
面使用一个反斜杠 ()。下表给出了这些特殊字符及其含义:
特殊字符 说明
$ 匹配输入字符串的结尾位置。如果设置了 regexp 对象的 multiline
属性,则 $ 也匹配 或 。要匹配 $ 字符本身,请使用 $。
( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。
要匹配这些字符,请使用 ( 和 )。
* 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。
+ 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。
. 匹配除换行符 之外的任何单字符。要匹配 .,请使用 。
标记一个中括号表达式的开始。要匹配 [,请使用 [。
? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ?
字符,请使用 ?。
将下一个字符标记为或特殊字符、或原义字符、或后向引用、或八进制
转义符。例如, n 匹配字符 n。 匹配换行符。序列 \ 匹
配 "",而 ( 则匹配 "("。
^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示
不接受该字符集合。要匹配 ^ 字符本身,请使用 ^。
{ 标记限定符表达式的开始。要匹配 {,请使用 {。
| 指明两项之间的一个选择。要匹配 |,请使用 |。