资讯专栏INFORMATION COLUMN

正则表达式- [...]

ZHAO_ / 544人阅读

摘要:中括号在正则表达式里面也是一个非常常用的知识点,它的主要作用是设置一个集合和范围。一集合在正则表达式里表示一个包含或者或者的集合,匹配三者之中的任意一个。来看一个例子上面的正则表达式需要匹配的是数字和之间为三者中的任意一个。

[...]中括号在正则表达式里面也是一个非常常用的知识点,它的主要作用是设置一个集合范围。

一:集合
[abc]在正则表达式里表示一个包含a或者b或者c的集合,匹配三者之中的任意一个。注意元素之间不用空格和逗号隔开,因为在正则表达式里,[]里的空格或者逗号也会被判定为一个匹配元素。
来看一个例子:

let reg = /1[abc]2/g;
"1a2".match(reg); //["1a2"]
"1b2".match(reg); //["1b2"]

上面的正则表达式需要匹配的是数字1和2之间为a,b,c三者中的任意一个。所以‘1a2’, "1b2"都可以匹配。
再看下面一个例子:

let reg = /1[abc]2/g;
"1abc2".match(reg); //null

仍然是上面的正则表达式,但是‘1abc2’是不匹配的。这里要注意的一点就是[...]里面的元素,当只有出现其中的任意一个时才能匹配,可以理解为[...]里面的元素只占一个位置。我们这里的abc占了三个位置,是不匹配我们给出的正则的。

二:范围
[1-9]表示数字1到9之间任意一个数字,[a-z]表示a到z之间的任意一个小写字母。在[]里用连字符(-)链接一个范围的两边,就能用来表示一个范围。

let reg = /[1-9][a-z]/g;
"5d".match(reg); //["5d"]
"d1".match(reg); // null

三:集合和范围之外

[^]当我们在中括号里的元素前加上一个^,就表示匹配除此之外的元素。

 [^abc] 除了"a","b", "c"之外的任意字符
 [^0-9] 除了数字之外的任意字符,等同于 D
 [^s] 除了空格之外的任意字符,等同于 S

看一个例子:

let reg = /[^0-9a-z]/ig;
"nana123@gmail.com".match(reg); //["@", "."]

这里我们需要匹配除了字母和数字之外的字符,所以我们匹配到了"@"和"."这两个字符。

四:[...]里的元字符
我们知道元字符都有特色的含义与作用,比如".", "+", "?", "()"等,如果我们要把他们作为普通字母匹配,需要用""转义。例如,如果我们要匹配".", 需要用到"."。但是当他们出现在[]里面的时候,就失去了他们特色的作用,就做回了自己本身,也不需要再用后斜杠转义。

但是前面我们也讲到^出现在[]内部最前面,还有"-"出现在[a-z]这种情况下,还是有特殊意义的。那么当^不出现在[]内部最前面,还有"-"不出现在[a-z]这种情况下,他们也就是自己本身。例如:

let reg = /[-().^+]/g;
"1 + 2 - 3".match(reg); //["+", "-"]

这里的"^"和"-"都只是字符本身,所以我们能匹配到["+", "-"]。
当然如果在[]里面给这些元字符转义加上"",也不会有错,依然能匹配得到。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/104032.html

相关文章

  • 正则达式

    摘要:本文内容共正则表达式火拼系列正则表达式回溯法原理学习正则表达式,是需要懂点儿匹配原理的。正则表达式迷你书问世了让帮你生成和解析参数字符串最全正则表达式总结验证号手机号中文邮编身份证地址等是正则表达式的缩写,作用是对字符串执行模式匹配。 JS 的正则表达式 正则表达式 一种几乎可以在所有的程序设计语言里和所有的计算机平台上使用的文字处理工具。它可以用来查找特定的信息(搜索),也可以用来查...

    bang590 评论0 收藏0
  • JS中的正则达式

    摘要:构造函数可以有两个字符串参数,第一个参数包含正则表达式的主体部分。只读的布尔值,说明这个正则表达式是否带有修饰符。中正则的扩展构造函数在中,只能接受字符串作为参数,允许其直接接受正则表达式作为参数。 上文传送门:初探正则表达式 正则表达式是一个描述字符模式的对象,JavaScript 的 RegExp 类表示正则表达式,String 和 RegExp 都定义了方法,后者使用正则表达式进...

    Soarkey 评论0 收藏0
  • JavaScript正则达式总结

    摘要:正则表达式一直是里比较难以掌握的点。在中创建正则的两种方式使用字面量这就是正则表达式的字面量语法,表示正则表达式的模式,为正则表达式的标志。字面量形式的正则表达式一般使用较多,也推荐大家尽可能使用这种形式,简洁易读,符合正常的使用习惯。 正则表达式一直是js里比较难以掌握的点。 看不懂,学不会,记不住。 每次需要用到正则的时候,都需要再去查找资料。 今天花时间把正则的知识点总结下,希望...

    big_cat 评论0 收藏0
  • 正则与JS中的正则

    摘要:注意本文将正则与中的正则分开讨论。正则零宽断言更多参考各种语言对于正则不同支持参考单行模式与多行模式通过设置正则表达式后的修饰符可开启对应的匹配模式单行模式和多行模式。 最近这段时间帮同学处理一些文档, 涉及到一些结构化文档的工作大部分都得使用正则表达式, 之前对于正则的认识大多来源于语言书上那几页的介绍, 自己也没有用过几次。这里将我之前感到模糊的概念作个整理。因为对JS了解多点,所...

    firim 评论0 收藏0
  • JavaScript正则达式的匹配模式

    摘要:选择分组和引用正则表达式的语法还包括指定选择项子表达式分组和引用前一子表达式的特殊字符。带圆括号的表达式的另一个用途是允许在同一正则表达式的后部引用前面的子表达式。 正则表达式(regular expression)是一个描述字符模式的对象。JavaScript的 RegExp类 表示正则表达式,String和RegExp都定义了方法,后者使用正则表达式进 行强大的模式匹配和文本检索与...

    wqj97 评论0 收藏0
  • 正则达式

    摘要:最全正则表达式总结验证号手机号中文邮编身份证地址等是正则表达式的缩写,作用是对字符串执行模式匹配。学习目标了解正则表达式语法在中使用正则表达式在中使 JS高级技巧 本篇是看的《JS高级程序设计》第23章《高级技巧》做的读书分享。本篇按照书里的思路根据自己的理解和经验,进行扩展延伸,同时指出书里的一些问题。将会讨论安全的类型检测、惰性载入函数、冻结对象、定时器等话题。1. 安全的类型检测...

    yibinnn 评论0 收藏0

发表评论

0条评论

ZHAO_

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<