正则表达式中的小括号和中括号,有什么区别呢?

作者&投稿:赏芸 (若有异议请与网页底部的电邮联系)
正则表达式中的()[]{}这三种括号一般有什么区别?~

区别:用法区别
() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。[]是定义匹配的字符范围。{}一般用来表示匹配的长度。
具体用例
1、()
(\s*)表示连续空格的字符串。
2、[]
[a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字,包括a到z,A到Z,0到9。[\s*]表示空格或者*号。
3、{}
\s{3} 表示匹配三个空格,\s{1,3}表示匹配一到三个空格。

扩展资料
正则表达式常用特殊字符
1、$
匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '
' 或 ''。要匹配 $ 字符本身,使用 \$。
2、()
标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,使用 \( 和 \)。
3、*
匹配前面的子表达式零次或多次。要匹配 * 字符,使用 \*。
4、^
匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。要匹配 ^ 字符本身,使用 \^。

一连串的条件用括号包裹起来,用逗号分开。
比如 select * from user where name in (1,2,3);

最基本的意思:小括号就是括号内看成一个整体 ,中括号就是匹配括号内的其中一个,大括号就是匹配几次

但是括号里变加上其他字符就有不同意思 详细介绍 例如:

{n}
n是一个非负整数。匹配确定的n次。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o。

{n,}
n是一个非负整数。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等价于“o+”。“o{0,}”则等价于“o*”。

{n,m}
m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1,3}”将匹配“fooooood”中的前三个o。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。

?
当该字符紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽
可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串“oooo”,“o+?”将匹配单个“o”,而“o+”
将匹配所有“o”。

.
匹配除“\n”之外的任何单个字符。要匹配包括“\n”在内的任何字符,请使用像“[.\n]”的模式。

(pattern)
匹配pattern并获取这一匹配。所获取的匹配可以从产生的Matches集合得到,在VBScript中使用SubMatches集合,在JScript中则使用$0…$9属性。要匹配圆括号字符,请使用“\(”或“\)”。

(?:pattern)
匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用或字符“(|)”来组合一个模式的各个部分是很有用。例如“industr(?:y|ies)”就是一个比“industry|industries”更简略的表达式。

(?=pattern)
正向预查,在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后
使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配
“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从
包含预查的字符之后开始。

(?!pattern)
负向预查,在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以
后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配
“Windows2000”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是
从包含预查的字符之后开始

x|y
匹配x或y。例如,“z|food”能匹配“z”或“food”。“(z|f)ood”则匹配“zood”或“food”。

[xyz]
字符集合。匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”中的“a”。

[^xyz]
负值字符集合。匹配未包含的任意字符。例如,“[^abc]”可以匹配“plain”中的“p”。

[a-z]
字符范围。匹配指定范围内的任意字符。例如,“[a-z]”可以匹配“a”到“z”范围内的任意小写字母字符。

[^a-z]
负值字符范围。匹配任何不在指定范围内的任意字符。例如,“[^a-z]”可以匹配任何不在“a”到“z”范围内的任意字符。

小括号是用于将基本的单元合成一个大的单元,而大括号就是将多个基本单元组成一个选择域,表示其中一个的意思。eg: (123)就是匹配"123"这个整体,而[123]就是匹配1/2/3(1或者2或者3)

不知道不了一天没上到一


正则表达式([\\s\\S]*?)是什么意思?
这个正则表达式是用来匹配空格符的,用来检查你的文本里面的空格 追问: 只是匹配空格吗?像如果是([\\s\\S]*?)与[\\s\\S]*?匹配的字符结果是否一样?就是想问下小括号的作用是? 回答: 小括号有两个作用一个是把里面的内容作为一个整体来看,另外一个作用就是可以用来匹配子表达式 追问: 就像...

正则表达式有小括号和没有小括号的区别? 帮帮忙啊
有小括号是分组的意思,会把匹配中间表达式的内容放到分组结果里面,程序里可以使用。

正则表达式\\(.+\\) 和\\b(\\w+)\\b是什么意思
\\b(\\w+)\\b:匹配一个单词,这个单词由一对括号()以及括号中的至少一个文字类字符(A-Z、a-z、0-9以及下划线_)组成。\\:将下一个字符标记符、或一个向后引用、或一个八进制转义符。例如,“\\\\n”匹配\\n。“\\n”匹配换行符。序列“\\\\”匹配“\\”而“\\(”则匹配“(”。即相当于多种...

3.正则表达式使用基础:括号(一)
只需要匹配两种表达式中的一个,就是合法身份证。那我们可以使用多选分组。-关于多选分组,补充三点: 1.多选结构的一般表示法是(option1|option2),在多选结构中一般会同时使用()和竖线 |;但是如果没有括号,只出现竖线|,仍然是多选结构。括号的用来规定整个多选结构的范围,如果没有出现括号,则...

java正则表达式匹配小括号内的内容
String str = "(aa){(dd)cbdsagchgkhdbvljck(ff)}";Pattern pattern = Pattern.compile("(?<=\\\\()[^\\\\)]+");Matcher matcher = pattern.matcher(str);while(matcher.find()){ System.out.println(matcher.group());}

mysql中的正则表达式 小括号“()”代表什么
一连串的条件用括号包裹起来,用逗号分开。比如 select * from user where name in (1,2,3);

VB.net中如何将正则表达式小括号中的内容提取出来?
MatchCollection Dim IsMatch As Boolean = Regex,如何将SearchPattern中的指定的 那个三个小括号对应的内容即SubMatches(0)=".RegularExpressions.Groups(0);) !For Each Mt In Matchs On Error Resume Next S = S & Macth; Publi" SubMatches(2)=".RegularExpressions; SubMatches(1)=".Matches(...

c#用正则表达式提取小括号中的内容
\/* 2016-11-17 更新 留言的朋友说取不到括号中的内容,更新下,如果一定要的是不包含括号的内容,变更下表达式就可以了。 *\/ rex = new Regex("((?<MYSTR>\\\\w+))");String str1 = rex.Match("aaaa(bbbbbb)jlkoihj").Groups["MYSTR"].ToString();\/\/ 结果 bbbbbb ...

正则表达式(括号)、[中括号]、{大括号}的区别小结
正则表达式的()[]{}有不同的意思。()是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。(\\s*)表示连续空格的字符串。[]是定义匹配的字符范围。比如 [a-zA-Z0-9]表示相应位置的字符要匹配英文字符和数字。[\\s*]表示空格或者*号。{}一般用来表示匹配的长度,比如 \\s{3} ...

正则^(?:[a-z]+:)?\/\/ 怎么解释
整体分析这个正则,前面的^表示以什么什么开头,然后(?:)表示非捕获分组,就是不把小括号里面的值进行保存,提高性能。[]表示字符集合,然后a-z是一个范围,表示所有的小写字母,又因为表达式后面的模式修正符为i,不区分大小写,最终会匹配大写字母或小写字母。后面+表示匹配一个或者多个小写字母,最后...

金堂县17793916291: 正则表达式中的小括号和中括号,有什么区别呢? -
端菲斯诺: 最基本的意思:小括号就是括号内看成一个整体 ,中括号就是匹配括号内的其中一个,大括号就是匹配几次但是括号里变加上其他字符就有不同意思 详细介绍 例如:{n} n是一个非负整数.匹配确定的n次.例如,“o{2}”不能匹配“Bob”中...

金堂县17793916291: 正则表达式中 ' - ' 和 [ - ],有什么区别? -
端菲斯诺: 最基本的意思:小括号就是括号内看成一个整体 ,中括号就是匹配括号内的其中一个,大括号就是匹配几次 但是括号里变加上其他字符就有不同意思 详细介绍 例如: {n} n是一个非负整数.匹配确定的n次.例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o. {n,} n是一个非负整数.至少匹配n次.例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o.“o{1,}”等价于“o+”.“o{0,}”则等价于“o*”. {n,m} m和n均为非负整数,其中n

金堂县17793916291: 正则表达式中的()[]{}这三种括号一般有什么区别? -
端菲斯诺: ()这种括号,会分配存储空间,可以用$1取得里面的数据 []用来自定义能够匹配 '多种字符' 的表达式.比如[mike]匹配,m,i,k,e,这4个字母,这里注意是单个字符不能匹配一个单词mike,如果要匹配一个单词可以这样写(mike),如果不需要分配存储空间可以直接写mike. {}修饰匹配次数的符号.a{0,1}a至少出现0次或最多1次,第二次出现则不匹配了a{2,5}a至少出现2次或最多5次. 希望你能理解!

金堂县17793916291: C#正则表达式中小括号有什么作用?比如^\d+(.\d{2})?$中的小括号有什么作用? -
端菲斯诺:[答案] 给你一段代码看一下应该就会明白了:string pattern = string.Format(@"^{0}a/(.*)/([\d]+).htm$",root);string newUrl = Regex.Replace(oldUrl, pattern, root + "article.aspx?item=$1&id=$2", RegexOptions.Ignor...

金堂县17793916291: 小括号意义 -
端菲斯诺: 正则表达式中小括号用来指定一个子表达式,并可以将子表达式中匹配的内容进行分组,分组后的内容可以在表达式或其他程序中做进一步处理.

金堂县17793916291: 正则表达式中$1,$2 ===算是什么意思 -
端菲斯诺: $1,$2...是表示的小括号的内容$1是第一个小括号里的 ,$2是第2个小括号里的比如 /gai([\w]+?)over([\d]+)/匹配 gainover123$1= 括号里的 n $2= 第2个括号里的 123

金堂县17793916291: 小括号的作用是什么? 要简单一点的 -
端菲斯诺: 提高表达式运算时的优先级

金堂县17793916291: 正则表达式中的中括号什么意思? -
端菲斯诺: 字符类,指定可以取的字符范围

金堂县17793916291: 正则表达式有小括号和没有小括号的区别 -
端菲斯诺: ()小括号是分组的意思,组又分为捕获组和非捕获组,捕获组会缓存捕获到的内容到内存,效率相对较低

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网