正则表达式常用语法

280 阅读3分钟

一、简介

正则表达式又称规则表达式,(Regular Expression,在代码中常简写为 regex、regexp 或 RE),是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"),是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。

1、创建正则

  • 构造函数法
const 变量名 = new RegExp("正则表达式""匹配模式");
  • 字面量法
const 变量名 = /"正则表达式"/匹配模式;

2、匹配模式

  • i:忽略大小写
  • g:全局匹配模式

注意: 匹配模式可以同时写多个,并且不分前后(ig)

3、常用方法

  • test
    (1)作用:使用 test方法可以检查一个字符串是否符合正则表达式的规则;
    (2)返回值:若是返回 true,否则返回 false
    (3)语法:/表达式/.test(对象名)

  • exec
    (1)作用:使用 exec方法检索字符串中指定的值,返回找到的值,并确定其位置;
    (2)语法:/表达式/.exec(对象名)

4、字符串结合正则

  • match
    (1)作用:获取匹配正则的子字符串;
    (2)返回值:返回匹配的数组;
    (3)语法:str.match(表达式)
  • replace
    (1)作用:替换所匹配正则的子字符串;
    (2)返回值:返回替换后的字符串;
    (3)语法:str.replace(表达式,用于替换的内容)

二、语法

1、方括号

命令作用
[ ]查找方括号之间的任意字符
[^ ]查找不在方括号之间的任意字符
[0-9]查找从 0-9 的任意数字
[A-Z]查找所有大写字母
[a-z]查找所有小写字母
[A-z]查找所有字母

2、量词

命令作用
{n}出现 n 次
{m,n}出现 m~n 次
{m, }出现 m 次以上
+至少一个,相当于 {1, }
*零个或多个都可以,相当于 {0, }
?零个或一个,相当于 {0,1}(非贪婪模式)
^a表示以 a 开头
a$表示以 a 结尾
^a$要求字符串必须完全符合正则表达式
?=n匹配任何其后紧接指定字符串 n 的字符串
?!n匹配任何其后没有紧接指定字符串 n 的字符串

3、元字符

命令作用
.表示除换行符外的任意单个字符(用 \. 表示 .)
\w任意字母、数字、下划线
\W除了字母、数字、下划线
\d任意 0-9 数字
\D除了 0-9 数字
\s单个的空白字符(空格/换行符)
\S除了空白符
\b单词边界
\B除了单词边界

4、反向引用

  • 作用:通常是用来查找或限定重复、指定标识配对出现等
  • 语法:“\1”要求必须是两个相同的字符
命令作用
[A-z]\1表达连续两个相同的字母
[A-z]\1{2}表达连续三个相同的字母

5、注意事项

  • 通过量词可以设置一个内容出现的次数,量词只对它前面的内容起作用;
  • 可以通过小括号 () 选定一块需要作用的内容;
  • 正则表达式中的转义字符 \;
  • 使用字面量法时,\ 可以直接使用;但是使用构造函数时,由于它的参数是一个字符串,而 \ 在字符串中也是转义字符,故若要使用 \ 则需要用 \\ 代替。