美文网首页
正则表达式

正则表达式

作者: 丿西瓜女皇_ | 来源:发表于2018-03-02 14:46 被阅读0次

    正则表达式(Regular Expression):字符串匹配的模式(pattern),可以用来检查一个字符串是否含有某种子串。简单说就是一种规则。


    \:将一个字符标记为特殊字符。例:‘\n’匹配一个换行符

    ^:字符串的开始位置。例:/^a/  匹配a字符开始的字符串

    $:字符串的结束位置。例:/^ab$/ 匹配只包含"ab"的字符串。

    *:匹配前面的子表达式0/n次。等价于{0, }(可有可无)

    +:匹配前面的子表达式1/n次。等价于{1, }(至少一次)

    ?:匹配前面的子表达式0/1次。等价于{0,1}(可有可无)

           当跟在其他限制符后面时,匹配模式是非贪婪模式。例:对于字符串 "oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。

    {n}:匹配n次,n是非负整数。例:/o{2}/  匹配连续o两次 food-true fold-false

    {n,}:匹配最少n次,n是非负整数。

    {n,m}:匹配n<次数<m,n是非负整数。

    . :匹配除'\n'以外的所有字符。

    x|y:匹配x或y。

    [xyz]:字符集合,匹配所包含的任意一个字符。

    [^xyz]:负值字符集合,匹配不包含的任意一个字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'

    [a-z]:字符范围。匹配指定范围内的任意一个字符。

    [^a-z]:负值字符范围。匹配非指定范围内的任意一个字符。

    \b:匹配一个单词边界(单词和空格间的位置)。例:‘er\b’可以匹配“never”中的”er“不能匹配”verb“中的“er”。

    \B:匹配一个非单词边界(非单词和空格间的位置)。

    \d:匹配一个数字字符。等价于[0-9]。

    \D:匹配一个非数字字符。等价于[^0-9]。

    \f:匹配一个换页符。等价于\x0c和\cL。

    \n:匹配一个换行符。等价于 \x0a 和 \cJ。

    \r:匹配一个回车符。等价于\x0d和\cM。

    \s:匹配任何空白字符(空格、制表符、换页符...)。等价于[\f\n\r\t\v]。

    \S:匹配任何非空白字符。等价于[^\f\n\r\t\v]。

    \t:匹配一个制表符。

    \v:匹配一个垂直制表符。

    \w:匹配包含下划线的任何单词字符。等价于[a-z0-9_]

    \W:匹配非单词字符。等价于[^a-z0-9_]

    \xn:匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,'\x41' 匹配 "A"。'\x041' 则等价于 '\x04' & "1"。正则表达式中可以使用 ASCII 编码。.

    \num:匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。例如,'(.)\1' 匹配两个连续的相同字符。

    \n:标识一个八进制转义值或一个向后引用。如果 \n 之前至少 n 个获取的子表达式,则 n 为向后引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。

    \nm:标识一个八进制转义值或一个向后引用。如果 \nm 之前至少有 nm 个获得子表达式,则 nm 为向后引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的向后引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm。

    \nml:如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。

    \un:匹配 n,其中 n 是一个用四个十六进制数字表示的 Unicode 字符。例如, \u00A9 匹配版权符号 (?)。


    相关文章

      网友评论

          本文标题:正则表达式

          本文链接:https://www.haomeiwen.com/subject/dpaoxftx.html