正则表达式并非一门专用语言,但它可用于在一个文件或字符里查找和替代文本的一种标准。它具有两种标准:基本的正则表达式(BRE),扩展的正则表达式(ERE)。
可以如此理解:使用正则表达式来表示某种搜索规则,然后使用该正则表达式来完成字符串的搜索工作。
引用
使用正则表达式,就可以:
测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。
替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。
根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。
字符匹配
正则表达式的关键之处在于确定你要搜索匹配的东西。每一个表达式都包含需要查找的指令。
. 匹配除 "\n" 之外的任何单个字符。
[ ] 匹配指定范围内的任意字符。
[^] 匹配任何不在指定范围内的任意字符。
重复操作符
重复操作符,或数量词,都描述了查找一个特定字符的次数。它们常被用于字符匹配语法以查找多行的字符。
? 匹配前面的子表达式零次或一次。等价于{0,1}
* 匹配前面的子表达式零次或多次。
+ 匹配前面的子表达式一次或多次。
{n} n 是一个非负整数。匹配确定的 n 次。
{n,} n 是一个非负整数。至少匹配n 次。
{n,N} N 和 n 均为非负整数,其中n <= N。最少匹配 n 次且最多匹配 N 次。
注意:* 等价于{0,} + 等价于{1,} ? 等价于{0,1}
锚
锚是指它所要匹配的格式。使用它能方便你查找通用字符的合并。
^ 匹配输入字符串的开始位置。
$ 匹配输入字符串的结束位置。
\<
\>
\b 匹配一个单词边界,也就是指单词和空格间的位置。
\B 匹配非单词边界,也就是指单词和空格间的位置。
间隔
这一符号相当于一个OR语句并代表|符号。
一些保留字符
^ (carat)
. (period)
[ (left bracket}
$ (dollar sign)
( (left parenthesis)
) (right parenthesis)
| (pipe)
* (asterisk)
+ (plus symbol)
? (question mark)
当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。
{ (left curly bracket, or left brace)
\ backslash 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 后向引用、或一个八进制转义符。
如要查找的字符中包含属于正则表达式规则中的保留字符,你必须用一个反斜线符号来替代它。
构造正则表达式:
可以通过在一对分隔符之间放入表达式模式的各种组件来构造一个正则表达式。对 Visual Basic Scripting Edition 而言,分隔符为一对正斜杠 (/) 字符。例如:
/expression/
对 VBScript 而言,则采用一对引号 ("") 来确定正则表达式的边界。例如:
"expression"
正则表达式模式 (expression) 均存储在RegExp 对象的Pattern 属性中。