正则表达式(正则表达式在线测试工具)

概念:在代码中常简写为regex、regexp或RE,使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。(搜素模式可以用于文本搜索和文本替换)

语法:/正则表达式主体/修饰符(可选)

创建方式

  • 直接量语法创建:直接量定义为包含在一对斜杠(/)之间的字符
  • 构造函数创建:通过 RegExp() 构建函数可以实现动态创建正则表达式。

关于正则表达式的一些知识我们可以从以下几个方面来了解:

直接量字符:所有字母和数字都是按照字面含义进行匹配的,其他非字母的字符需要通过 \ 作为前缀进行转移。注意,它们都是精确匹配,每一个字符都只能匹配一个字符。

字符类:不想匹配某一个特定的字符而是想匹配某一类字符的情况下。

重复:当一个模式需要被多次匹配的时候。

选择:用| 字符分隔可供选择的模式,匹配时会尝试从左至右匹配每一个分组,直到发现匹配项。

引用:带圆括号的表达式的另一个用途是允许在同一个正则表达式的后面引用前面的子表达式。

分组:带 () 的可以把单独的项组合成子表达式以便可以像一个独立的单元用 |、*、+ 或者 ? 对单元内的项进行处理。

锚元素:不用来匹配实际的字符,而是匹配指定的位置。(任何正则表达式都可以作为锚点条件)

修饰符

  • i 执行不区分大小写匹配
  • g 全局匹配
  • m 多行匹配模式
  • y sticky 修饰符
  • s 表示点 . ,可以表示任意字符,不设置的话,四个字节的 UTF-16 字符和行终止符不能用 . 表示
  • u 开启 Unicode 模式,用于正确处理大于 \uFFFF 的 Unicode 字符

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

正则表达式(正则表达式在线测试工具)

  • 1. 正则表达式分类
  • 2. 基本正则表达式
  • 3. 扩展正则表达式

1. 正则表达式分类

正则表达式:REGEXP,REGular EXPression。
正则表达式分为两类:

  • Basic REGEXP(基本正则表达式)
  • Extended REGEXP(扩展正则表达式)

2. 基本正则表达式

//元字符

. //任意单个字符

[] //匹配指定范围内的任意单个字符

[^] //匹配指定范围外的任意单个字符//匹配次数(贪婪模式)

* //匹配其前面的任意单个字符任意次

.* //任意长度的任意字符

\? //匹配其前面的任意单个字符1次或0次

\+ //匹配其前面的任意单个字符至少1次

\{m,n\} //匹配其前面的任意单个字符至少m次,至多n次//位置锚定

^ //锚定行首,此字符后面的任意单个字符必须出现在行首

$ //锚定行尾,此字符前面的任意单个字符必须出现在行尾

^$ //空白行

\<或\b //锚定词首,其后面的任意单个字符必须作为单词首部出现

\>或\b //锚定词尾,其前面的任意单个字符必须作为单词尾部出现

/分组

\(\)

例:\(ab\)*

//后向引用

\1 //引用第一个左括号以及与之对应的右括号所包括的所有内容

\2 //引用第二个左括号以及与之对应的右括号所包括的所有内容

3. 扩展正则表达式

//字符匹配

. //匹配任意单个字符

[] //匹配指定范围内的任意单个字符

[^] //匹配指定范围外的任意单个字符//次数匹配

* //匹配其前面的任意单个字符任意次

? //匹配其前面的任意单个字符1次或0次

+ //匹配其前面的任意单个字符至少1次

{m,n} //匹配其前面的任意单个字符至少m次,至多n次

//位置锚定

^ //锚定行首,此字符后面的任意单个字符必须出现在行首

$ //锚定行尾,此字符前面的任意单个字符必须出现在行尾

^$ //空白行

\<或\b //锚定词首,其后面的任意单个字符必须作为单词首部出现

\>或\b //锚定词尾,其前面的任意单个字符必须作为单词尾部出现//分组

() //分组

\1,\2,\3,….

例:(ab)*

//后向引用

\1 //引用第一个左括号以及与之对应的右括号所包括的所有内容

\2 //引用第二个左括号以及与之对应的右括号所包括的所有内容//或者

| //or 默认匹配|的整个左侧或者整个右侧的内容

//例:C|cat表示C或者cat,要想表示Cat或者cat则需要使用分组,如(C|c)at

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注