基本模式匹配
^once // 表示以once开头的字符串 "once upon a time" // 匹配, "There once was a man from NewYork" //不匹配
^字符用来表示该模式只匹配那些以 ^xxx 开头的字符串。
$ 符号用来匹配那些以给定模式结尾的字符串。
bucket$ // 表示,以bucket结束的字符串 “Who kept all of this cash in a bucket" // 匹配, "buckets" // 不匹配。
字符 ^ 和 $ 同时使用时,表示精确匹配(字符串与模式一样)
如果一个模式不包括 ^ 和 $,那么它与任何包含该模式的字符串匹配。
^bucket$ // 只匹配字符串 "bucket" once // 表示任何包含该模式的字符串匹配 There once was a man from NewYork // 匹配 Who kept all of his cash in a bucket. // 匹配
// 这些也只表示一个字符,
[a-z] // 匹配所有的小写字母 [A-Z] // 匹配所有的大写字母 [a-zA-Z] // 匹配所有的字母 [0-9] // 匹配所有的数字 [0-9\.\-] // 匹配所有的数字,句号和减号 [ \f\r\t\n] // 匹配所有的白字符
要匹配一个由一个小写字母和一位数字组成的字符串
^[a-z][0-9]$ // 表示以一个小子字母和一位数字组成的字符串
当在一组方括号里使用 ^ 时,它表示"非"或"排除"的意思,常常用来剔除某个字符。
^[^0-9][0-9]$ // 表示以第一个字符不是数字和一个数子组成的字符串
[^a-z] //除了小写字母以外的所有字符 [^\\\/\^] //除了(\)(/)(^)之外的所有字符 [^\"\'] //除了双引号(")和单引号(')之外的所有字符
特殊字符 .(点,句号)在正则表达式中用来表示除了"新行"之外的所有字符
.{2} // 所有的两个字符 // 一个数字 {x} 的意思是前面的字符或字符簇只出现x次 ^a{4}$ // 以a开头的字符,且连续只出现4次。 // 一个数字加逗号 {x,} 的意思是前面的内容出现x或更多的次数 ^a{2,} // 以a开头的字符,连续出现2次,或连续2次以上。 // 两个数字用逗号分隔的数字 {x,y} 表示 前面的内容至少出现x次,但不超过y次。 ^a{1,3} // 以a开头的字符,至少出现1次,且不超过3次。
{n}: // n是一个非负整数。匹配确定的n次。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o。 {n,} // n是一个非负整数。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等价于“o+”。“o{0,}”则等价于“o*” {n,m} // m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1,3}”将匹配“fooooood”中的前三个o为一组,后三个o为一组。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。 (pattern) //匹配pattern并获取这一匹配。所获取的匹配可以从产生的Matches集合得到,在VBScript中使用SubMatches集合,在JScript中则使用$0…$9属性。要匹配圆括号字符,请使用“\(”或“\)”。 \d // 匹配一个数字字符。等价于[0-9]。grep 要加上-P,perl正则支持 \D // 匹配一个非数字字符。等价于[^0-9]。grep要加上-P,perl正则支持 \s // 匹配任何不可见字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。 \S // 匹配任何可见字符。等价于[^ \f\n\r\t\v]。 \w // 匹配包括下划线的任何单词字符。类似但不等价于“[A-Za-z0-9_]”,这里的"单词"字符使用Unicode字符集。 \W // 匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。
确定重复出现
特殊字符 * 与 {0,} 是相等的 ,表示 0 个或多个前面的内容 特殊字符 ? 与 {0,1} 是相等的 ,表示0个或1个前面的内容 字符 + 与 {1,} 是相等的,表示 1 个或多个前面的内容
^[a-zA-Z0-9_]+$ // 所有包含一个以上的字母、数字或下划线的字符串 ^[1-9][0-9]*$ // 所有的正整数 ^\-?[0-9]+$ // 所有的整数 ^[-]?[0-9]+(\.[0-9]+)?$ // 所有的浮点数