正则表达式
^符号表示开头
^once表示该模式只匹配那些以once开头的字符串。例如该模式与字符串"once upon a time"匹配,与"There once was a man from NewYork"不匹配 $符号用来匹配那些以给定模式结尾的字符串。
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. 是匹配的。 制表符的转义序列是:t。所以如果我们要检测一个字符串是否以制表符开头,可以用这个模式: ^t 类似的,用n表示"新行",r表示回车。其他的特殊符号,可以用在前面加上反斜杠,如反斜杠本身用表示,句号.用.表示,以此类推。
[AaEeIiOoUu]这个模式与任何元音字符匹配,但只能表示一个字符。用连字号可以表示一个字符的范围,如: [a-z] //匹配所有的小写字母
[A-Z] //匹配所有的大写字母
[a-zA-Z] //匹配所有的字母
[0-9] //匹配所有的数字
[0-9.-] //匹配所有的数字,句号和减号
[ frtn] //匹配所有的白字符
这些也只表示一个字符,这是一个非常重要的。
如果要匹配一个由一个小写字母和一位数字组成的字符串,比如"z2"、"t6"或"g7",但不是"ab2"、"r2d3" 或"b52"的话,用这个模式: ^[a-z][0-9]$ 尽管[a-z]代表26个字母的范围,但在这里它只能与第一个字符是小写字母的字符串匹配。 前面曾经提到^表示字符串的开头,但它还有另外一个含义。 当在一组方括号里使用^是,它表示"非"或"排除"的意思,常常用来剔除某个字符。还用前面的例子,我们要求第一个字符不能是数字: ^[^0-9][0-9]$
这个模式与"&5"、"g7"及"-2"是匹配的,但与"12"、"66"是不匹配的。下面是几个排除特定字符的例子:
[^a-z] //除了小写字母以外的所有字符
[^/^] //除了()(/)(^)之外的所有字符
[^"'] //除了双引号(")和单引号(')之外的所有字符
特殊字符"." (点,句号)在正规表达式中用来表示除了"新行"之外的所有字符。所以模式"^.5$"与任何两个字符的、以数字5结尾和以其他非"新行"字符开头的字符串匹配。 模式"."可以匹配任何字符串,除了空串和只包括一个"新行"的字符串。 一个数字,{x}的意思是"前面的字符或字符簇只出现x次";一个数字加逗号,{x,}的意思是"前面的内容出现x或更多的次数";两个用逗号分隔的数字,{x,y}表示"前面的内容至少出现x次,但不超过y次"。我们可以把模式扩展到更多的单词或数字: 特殊字符"?"与{0,1}是相等的,它们都代表着:"0个或1个前面的内容"或"前面的内容是可选的" 特殊字符"*"与{0,}是相等的,它们都代表着"0个或多个前面的内容"。 最后,字符"+"与 {1,}是相等的,表示"1个或多个前面的内容",所以上面的4个例子可以写成:
?: 是 不想被捕获的时候使用 可以提高程序执行速度
正则经常用于js 判断手机号,邮箱等,通过简单的办法来实现强大的功能 符号解释 字符 描述 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'n' 匹配一个换行符。序列 '' 匹配 "" 而 "(" 则匹配 "("。 ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 'n' 或 'r' 之后的位置。 $ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 'n' 或 'r' 之前的位置。 * 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。 + 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。 ? 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {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*'。 {n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。 ? 当该字符紧跟在任何一个其他限制符 (*,+,?,{n},{n,},m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。 . 匹配除 "n" 之外的任何单个字符。要匹配包括 'n' 在内的任何字符,请使用象 '[.n]' 的模式。 x|y 匹配 x 或 y。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 则匹配 "zood" 或 "food"。 [xyz] 字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'。 [^xyz] 负值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'。 [a-z] 字符范围。匹配指定范围内的任意字符。例如,'[a-z]' 可以匹配 'a' 到 'z' 范围内的任意小写字母字符。 [^a-z] 负值字符范围。匹配任何不在指定范围内的任意字符。例如,'[^a-z]' 可以匹配任何不在 'a' 到 'z' 范围内的任意字符。 d 匹配一个数字字符。等价于 [0-9]。 D 匹配一个非数字字符。等价于 [^0-9]。 f 匹配一个换页符。等价于 x0c 和 cL。 n 匹配一个换行符。等价于 x0a 和 cJ。 r 匹配一个回车符。等价于 x0d 和 cM。 s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ fnrtv]。 S 匹配任何非空白字符。等价于 [^ fnrtv]。 t 匹配一个制表符。等价于 x09 和 cI。 v 匹配一个垂直制表符。等价于 x0b 和 cK。 w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。 W 匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。 具体怎么使用还得多看例子,对照解释 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |