首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第三章 正则表达式括号作用

第三章 正则表达式括号作用 不管哪门语言中都有括号正则表达式也是一门语言,而括号的存在使这门语言更为强大。 对括号的使用是否得心应手,是衡量对正则的掌握水平的一个侧面标准。...括号作用,其实三言两语就能说明白,括号提供了分组,便于我们引用它。 引用某个分组,会有两种情形:在JavaScript里引用它,在正则表达式里引用它。 本章内容虽相对简单,但我也要写长点。...分组和分支结构 这二者是括号最直觉的作用,也是最原始的功能。 1.1 分组 我们知道/a+/匹配连续出现的“a”,而要匹配连续出现的“ab”时,需要使用/(ab)+/。...其中括号是提供分组功能,使量词+作用于“ab”这个整体,测试如下: var regex = /(ab)+/g; var string = "ababa abbb ababab"; console.log...引用分组 这是括号一个重要的作用,有了它,我们就可以进行数据提取,以及更强大的替换操作。 而要使用它带来的好处,必须配合使用实现环境的API。 以日期为例。

1.6K60
您找到你想要的搜索结果了吗?
是的
没有找到

shell中各种括号作用(中)

三.大括号、花括号 {} 常规用法 1.大括号拓展。(通配(globbing))将对大括号中的文件名做扩展。在大括号中,不允许有空白,除非这个空白被引用或转义。...第一种:对大括号中的以逗号分割的文件列表进行拓展。如 touch {a,b}.txt 结果为a.txt b.txt。...第二种:对大括号中以点点(..)分割的顺序文件列表起拓展作用,如:touch {a..d}.txt 结果为a.txt b.txt c.txt d.txt #ls {ex1,ex2}.sh ex1.sh...与小括号中的命令不同,大括号内的命令不会新开一个子shell运行,即脚本余下部分仍可使用括号内变量。括号内的命令间用分号隔开,最后一个也必须有分号。{}的第一个命令和左括号之间必须要有一个空格。...表示仅与一个任意字符匹配,[…]表示匹配中括号里面的字符,[!…]表示不匹配中括号里面的字符。

1.8K20

shell中各种括号作用(下)

若num为正数,从左边0处开始;若num为负数,从右边开始提取字串,但必须使用在冒号后面加空格或一个数字或整个num加上括号,如${var: -2}、${var:1-3}或${var:(-2)}。        ...${a} 变量a的值, 在不引起歧义的情况下可以省略大括号。 2....五.使用 多条命令执行 1.单小括号,(cmd1;cmd2;cmd3) 新开一个子shell顺序执行命令cmd1,cmd2,cmd3, 各命令之间用分号隔开, 最后一个命令后可以没有分号。...2.单大括号,{ cmd1;cmd2;cmd3;} 在当前shell顺序执行命令cmd1,cmd2,cmd3, 各命令之间用分号隔开, 最后一个命令后必须有分号, 第一条命令和左括号之间必须用空格隔开。...对{}和()而言, 括号中的重定向符只影响该条命令, 而括号外的重定向符影响到括号中的所有命令

75420

正则分组】栈结构与括号匹配

前言 在研究正则表达式中,遇到了一个需求。通过本文来梳理和记录一下解决方案,并 分享给大家。对于正则表达式而言,一个括号就对应一个分组。...现在期望解析正则表达式,获取分组情况: (((\d{1,4})年)(\d{1,2}))月(\d{1,2})日 比如,上面的正则分组情况如下:简单来说,就是提取所有的匹配括号中内容。...=\))'); List parts = src.split(exp); } 所以现在我们需要做的是如何匹配括号的闭合,并提取出闭合括号中的内容。 3....括号闭合匹配思路 对闭合性的校验,最常用的当属栈结构 。...两者是匹配的,故 出栈 ,之后栈中只有没有元素,如场景9: 这样我们就得到了 0 和 5 索引是括号匹配的区间,也记录下来: 后面同理,根据 ) 字符对比,通过 ( 字符的出入栈情况,我们就可以获取到括号匹配的空间

1.1K40

正则表达式 -- 捕获括号

jQuery中充斥着大量的正则表达式,在jQuery不断改良的过程中,正则表达式的用法也在发生着变化。 其中变化最大的就是(?:pattern)的使用,当然还有?家族的一系列表达式用法。...., $9 再次访问到 非捕获括号是什么?捕获括号又是什么? 先从match(), exec(), test()这三个方法说起,捕获括号在exec()的介绍中有涉及。...描述: 如果正则表达式包含g标志,则该方法返回一个包含所有匹配结果的数组。 如果正则表达式没有g标志,返回和exec(str)相同的结果。..."ca"] 至于什么时候捕获括号,什么时候非捕获括号就要视情况而定了。灵活的使用这两者会有不一样的收获。 如果有兴趣,可以看一下下面的正则表达式 rquickExpr = /^(?...:\s*()[^>]*|#([\w-]+))$/ 这个正则表达式是jQuery的入口。

1.2K10

shell中各种括号作用(上)

一.小括号,圆括号() 单小括号() 1.命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。...括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。 2.命令替换。...再如可以直接使用if (($i<5)), 如果不使用双括号, 则为if [ $i -lt 5 ]。 二.中括号,方括号[] 单中括号 [] 1.bash 的内部命令,[和test是等同的。...用作正则表达式的一部分,描述一个匹配的字符范围。作为test用途的中括号内不能使用正则。 4.在一个array 结构的上下文中,中括号用来引用数组中每个元素的编号。 双中括号[[ ]] 1....2.支持字符串的模式匹配,使用=~操作符时甚至支持shell的正则表达式。字符串比较时可以把右边的作为一个模式,而不仅仅是一个字符串,比如[[ hello == hell? ]],结果为真。

87320

正则】964- 正则表达式的括号如何使用?

最近再一次重温老姚大佬的《JavaScript 正则表达式迷你书》 , 并将核心知识点整理一遍,方便复习。 原书写得非常棒,建议看下原书啦。...地址:https://github.com/qdlaoyao/js-regex-mini-book 回复“8”加入面试题分享群 简单理解:括号提供了分组,便于我们使用它。...通常有两种引用情况:在JS代码中引入,和在正则表达式中引入。 分组和分支结构,主要是强调括号内是一个整体,即提供子表达式。 分组如 /(ab)+/g 匹配连续出现的 ab 。...按照开括号的顺序: let r = /^((\d)(\d(\d)))\1\2\3\4$/; let s = "1231231233"; r.test(s); console.log([RegExp.$1...向后引用 \n 表示后向引用, \1 是指在正则表达式中,从左往右数第1个 () 中的内容;以此类推, \2 表示第2个 (), \0 表示整个表达式。

89530

shell中各种括号作用()、(())、]、{}「建议收藏」

一、小括号,圆括号() 1、单小括号 () ①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。...用作正则表达式的一部分,描述一个匹配的字符范围。作为test用途的中括号内不能使用正则。 ④在一个array 结构的上下文中,中括号用来引用数组中每个元素的编号。...②支持字符串的模式匹配,使用=~操作符时甚至支持shell的正则表达式。字符串比较时可以把右边的作为一个模式,而不仅仅是一个字符串,比如[[ hello == hell? ]],结果为真。...第二种:对大括号中以点点(..)分割的顺序文件列表起拓展作用,如:touch {a..d}.txt 结果为a.txt b.txt c.txt d.txt # ls {ex1,ex2}.sh...与小括号中的命令不同,大括号内的命令不会新开一个子shell运行,即脚本余下部分仍可使用括号内变量。括号内的命令间用分号隔开,最后一个也必须有分号。

3.8K40

Go:作用域与结构--大括号的特殊用法

单独使用大括号的情况及其用途 尽管不常见,但以下是在Go语言中可能会单独使用大括号的几种情况: 限制变量的作用域: 用途:单独的大括号代码块可以用来创建一个独立的作用域。...在这个作用域内声明的变量,在代码块结束后就不再可访问。这有助于避免变量名冲突,管理变量生命周期,以及减少内存使用。...示例: go if someCondition { // TODO: 待实现 } 建议和最佳实践 尽管在技术上可以在Go中使用单独的大括号代码块,以下是一些关于何时以及如何使用它们的建议: 明确作用域...:只在确实需要限制变量作用域或避免命名冲突时使用单独的大括号。...结论 在Go语言中,虽然大括号通常是与其他语句结合使用的,但在特定情况下,单独的大括号代码块可以用于特定的用途,如限制变量的作用域或作为代码的占位符。

17010

有效的括号java

有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类型的左括号。...,即不考虑数学意义上括号的意义:也就是说,只要括号正确闭合就行,类似 ([])、({})、[{}]、([{}]) 等也符合题目中有效括号的定义。...例如示例4输出为true 思路1: 对于任何有效的初始括号字符串均至少含有()、{}、[]三对括号中的一对,故使用contains()循环判断是否含有这三对括号,若有则使用replace()删除...,遍历括号字符串。...第一次解题:只考虑了括号的数量成对,未考虑括号的位置 第二次解题:想的太多,认为{}的包含关系是固定的,即[{}] 为无效括号 第三次解题:对于空字符串的判断使用!

31910

有效的括号(java)

有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 ...,然后判断每种左右括号相同,就是有效括号了吧。...所以当我仔细观察,却发现了一个特点,跟栈先入后出的特别非常吻合,即若遇到左括号入栈,遇到右括号时将对应栈顶左括号出栈即可,所以只需遍历完所有括号后 ​​stack​​ 仍然为空,这就说明括号是有效的。...所以算法思路就是:​​遍历字符串​​ str,然后分情况: 当遇到一个左括号时,在后续遍历中希望有一个相同类型的右括号将其闭合。由于后遇到的左括号要先闭合,因此我们可以将这个左括号放入栈顶。...当遇到一个右括号时,我们则需要将一个相同类型的左括号闭合。此时,我们可以取出栈顶的左括号并判断它们是否是相同类型的括号

28020

【JavaScript】对象 ① ( 对象概念 | 对象使用场景 | 使用字面量创建对象 | 空对象字面量 | 小括号括号括号 作用 )

使用字面量创建对象 JavaScript 中有 3 种创建对象的方式 : 使用 字面量 创建对象 ; 使用 new 关键字 创建对象 ; 使用 构造函数 创建对象 ; 1、使用字面量创建对象 对象字面量 是 花括号...function() { return this.name+ " is " + this.age + " years old"; } }; 如果 对象字面量 的 大括号中为...= function() { console.log(this.name + " is " + this.age + " years old"); }; 2、小括号.../ 中括号 / 大括号 作用 JavaScript 中 小括号 / 中括号 / 大括号 作用 : 小括号 是 结合运算符 , 是拥有最高的优先级 的 运算符 ; 中括号 是 数组字面量 的标志 , 如...: ['Tom', 18] 这是一个数组字面量 ; 大括号 是 对象字面量 的标志 , 使用字面量创建对象中 , 就是 使用 大括号 构造了一个 对象字面量 ; 3、代码示例 - 使用字面量创建对象

5110

L2正则化的作用(l1正则化特点)

0 正则化的作用 正则化的主要作用是防止过拟合,对模型添加正则化项可以限制模型的复杂度,使得模型在复杂度和性能达到平衡。 常用的正则化方法有L1正则化和L2正则化。...1 L1正则化与L2正则化 L1正则化的表达如下,其中 α ∣ ∣ w ∣ ∣ 1 \alpha||w||_1 α∣∣w∣∣1​为L1正则化项,L1正则化是指权值向量w 中各个元素的绝对值之和。...L1和L2正则化的作用: L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择,一定程度上,L1也可以防止过拟合 L2正则化可以防止模型过拟合(overfitting) 下面看李飞飞在CS2312...2 L1和L2正则化的原理 上面讲到L1倾向于学得稀疏的权重矩阵,L2倾向于学得更小更分散的权重?但是L1和L2是怎样起到这样的作用的呢?背后的数学原理是什么呢?...正则化参数 λ越大,约束越严格,太大容易产生欠拟合。正则化参数 λ越小,约束宽松,太小起不到约束作用,容易产生过拟合。 如果不是为了进行特征选择,一般使用L2正则化模型效果更好。 参考文章: 1.

97610
领券