正则表达式的写法

xiaoxiao2021-03-01  19

遵循规则如下:

1. 稍微复杂的字符,如标点符号和空格、制表符,需要用反斜杠(\)打头,\n表示新行,\r表示回车,\t制表符,\s表示空格;

2. 匹配规则如下:

 

[a-z] //匹配所有的小写字母 [A-Z] //匹配所有的大写字母 [a-zA-Z] //匹配所有的字母 [0-9] //匹配所有的数字 [0-9\.\-] //匹配所有的数字,句号和减号 [ \f\r\t\n] //匹配所有的白字符a-z] //匹配所有的小写字母 [A-Z] //匹配所有的大写字母 [a-zA-Z] //匹配所有的字母 [0-9] //匹配所有的数字 [0-9\.\-] //匹配所有的数字,句号和减号 [ \f\r\t\n] //匹配所有的白字符

每一个方框内只能匹配一个,即[a-z][0-9]能匹配a2,不能匹配ab2;

3. 正则表达式以"^"表示开头,以"$"表示结尾,如果在方括号内部有"^"符号,表示“非”,“排除”的意思,如下所示:

 

[^a-z] //除了小写字母以外的所有字符 [^\\\/\^] //除了(\)(/)(^)之外的所有字符 [^\"\'] //除了双引号(")和单引号(')之外的所有字符a-z] //除了小写字母以外的所有字符 [^\\\/\^] //除了(\)(/)(^)之外的所有字符 [^\"\'] //除了双引号(")和单引号(')之外的所有字符

4. 方框后接{2,4},表示有2-4个这样的数,如果是{0,}表示0个或多个;

5. 前瞻: exp1(?=exp2) 查找exp2前面的exp1

   后顾: (?<=exp2)exp1 查找exp2后面的exp1

   负前瞻: exp1(?!exp2) 查找后面不是exp2的exp1

   负后顾: (?<!=exp2)exp1 查找前面不是exp2的exp1

6. 匹配多个相同的方框:

 

^[a-zA-Z0-9_]{1,}$ // 所有包含一个以上的字母、数字或下划线的字符串 ^[1-9][0-9]{0,}$ // 所有的正整数 ^\-{0,1}[0-9]{1,}$ // 所有的整数 ^[-]?[0-9]+\.?[0-9]+$ // 所有的浮点数a-zA-Z0-9_]{1,}$ // 所有包含一个以上的字母、数字或下划线的字符串 ^[1-9][0-9]{0,}$ // 所有的正整数 ^\-{0,1}[0-9]{1,}$ // 所有的整数 ^[-]?[0-9]+\.?[0-9]+$ // 所有的浮点数

其中“?”表示可有可无;

“0个或多个”,即{0,}可表示为“*”;

一个或多个即{1,}可表示为“+”

7. 下列元字符需要进行转义

( [ { \ ^ $ | ) ? * + .]}

8. 其他字符集(注意括号)

 

 

特别字符描述$匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$。( )标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。*匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。+匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。.匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. 。[标记一个中括号表达式的开始。要匹配 [,请使用 \[。?匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。\将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。^匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^。{标记限定符表达式的开始。要匹配 {,请使用 \{。|指明两项之间的一个选择。要匹配 |,请使用 \|。

[...] 位于括号之内的任意字符  [^...] 不在括号之中的任意字符  . 除了换行符之外的任意字符,等价于[^\n]  \w 任何单字字符, 等价于[a-zA-Z0-9]  \W 任何非单字字符,等价于[^a-zA-Z0-9]  \s 任何空白符,等价于[\ t \ n \ r \ f \ v]  \S 任何非空白符,等价于[^\ t \ n \ r \ f \ v]  \d 任何数字,等价于[0-9]  \D 除了数字之外的任何字符,等价于[^0-9] 

\b的用法:

"nice to meet you".match(/\bnice\b/),输出如下:

["nice", index: 0, input: "nice to meet you", groups: undefined]

"nice to meet you".match(/o\b meet\b /),输出如下:

["o meet ", index: 6, input: "nice to meet you", groups: undefined]

\b指的是如nice中的‘n’和‘i’之间的看不见的字符,所以第一个输出匹配的是:第一个'\b'的前面没有字符,后面为字符'n',第二个'\b'的前面为字符'e',后面没有字符。所以匹配nice;

第二个输出匹配的是:第一个'\b'的前面为字符o,后面为空格,第二个'\b'的前面为字符't',后面为空格。所以匹配a nice (注:nice后有空格)。

正则表达式的写法举例:

/ pattern / flags ;flags支持3个标志,分别为g(gobal全局内)、i(case-insensitive不区分大小写)、m(multiline)多行匹配

1. 选取单词

例如:如果我们想要找到字符串The dog chased the cat中单词the,我们可以使用下面的正则表达式:/the/gi

我们可以把这个正则表达式分成几段:

/ 是这个正则表达式的头部

the 是我们想要匹配的模式

/ 是这个正则表达式的尾部

g 代表着 global(全局),意味着返回所有的匹配而不仅仅是第一个。

i 代表着忽略大小写,意思是当我们寻找匹配的字符串的时候忽略掉字母的大小写。

2. 选取数值

在JavaScript中, 数字选择器类似于:/\d/g。

在选择器后面添加一个加号标记(+),例如:/\d+/g,它允许这个正则表达式匹配一个或更多数字。

尾部的g是'global'的简写,意思是允许这个正则表达式 找到所有的匹配而不是仅仅找到第一个匹配。

3. 选取空白字符

我们也可以使用正则表达式选择器 \s 来查找一个字符串中的空白。

空白字符有 " " (空格符)、\r (回车符)、\n (换行符)、\t (制表符) 和\f (换页符)。

空白正则表达式类似于:

/\s+/g

 

 

转载请注明原文地址: https://www.6miu.com/read-3100323.html

最新回复(0)