正则表达式中的()[]{}这三种括号一般有什么区别?

作者&投稿:敛史 (若有异议请与网页底部的电邮联系)
正则表达式中的小括号和中括号,有什么区别呢?~

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

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


{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”。


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


(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”范围内的任意字符。

正则表达式的
() [] {}
有不同的意思。

() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。(\s*)表示连续空格的字符串。

[]是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[\s*]表示空格或者*号。

{}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s[1,3]表示匹配一到三个空格。

(0-9) 匹配 '0-9' 本身。
[0-9]* 匹配数字(注意后面有 *,可以为空)
[0-9]+ 匹配数字(注意后面有 +,不可以为空)
{1-9} 写法错误。
[0-9]{0,9} 表示长度为 0 到 9 的数字字符串。

区别:用法区别

() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。[]是定义匹配的字符范围。{}一般用来表示匹配的长度。

具体用例

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、^

匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。要匹配 ^ 字符本身,使用 \^。



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

=.=
怎么能忽悠人捏
小括号有两种含义,1是原子组,2是可以将括号内的东西作为值返回
中括号代表字符集。[a-z]代表一个字母,这个字母在a到z的范围内。
大括号代表重复数量,[a-z]{1,2}代表一到二个字母,这两个字母都在a到z的范围内

只是简单的说了下,具体的,你还是上网去搜索下详细的资料。加油~~

()括号
[]中括号
{}大括号
一个盖一个= =
大括号里面可以用中括号,中括号里面可以用小括号


js 正则表达式 ​var reg = \/(.*[0-9].*[0-9].*[0-9])\/ 是什么意思...
js中构造一个字符串变量时可以用两个正斜杠来代替双引号,改行代码也可改成 var reg = "(.*[0-9].*[0-9].*[0-9])";因此,正则表达式实际上是(.*[0-9].*[0-9].*[0-9])最外层括号代表捕获组,捕获组在此表达式中无实际用处,所以表达式也可看成 .*[0-9].*[0-9].*[0-9]...

正则表达式 .*? 是什么意思啊?
表达式 .* 就是单个字符匹配任意次,即贪婪匹配。 表达式 .*? 是满足条件的情况只匹配一次,即最小匹配.举例介绍:如: 懒惰模式正则:src=".*?"结果:src="test.jpg"

\/正斜杠在javascript正则表达式中怎么表示?
\/正斜杠在javascript正则表达式中可以\\\/表示,比如 var reg = \/\\\/\/;正则表达式中转义字符是\\(反斜杠),正则表达式中要匹配一下字符本身时需要转义:,匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\\n' 或 ‘\\r'。要匹配 $ 字符本身,请使用 \\$。( )...

若有定义:int aa[8];,则以下表达式中不能代表数组元素aa[1]的地址...
选C。aa是数组名的同时也是这个数组首元素的首地址,也就是aa=&aa[0]。找aa[1]的地址就是首地址偏移一个整形位,所以A,D对。B就是对元素aa[1]取地址,所以ABD对。C中&小于后置++的优先级所以&aa[0]++等价于&(aa[0]++)所以先对aa[0]中的元素值加1后,在对aa[0]取址,结果还是...

正则表达式"或"怎么写
竖线“|”就是或的意思。意思是将两个匹配条件进行逻辑“或”(or)运算。例如正则表达式(him|her) 匹配"it belongs to him"和"it belongs to her",但是不能匹配"it belongs to them."。注意:这个元字符不是所有的软件都支持的。而最简单的元字符是点,它能够匹配任何单个字符(注意不包括换行...

若给定条件表达式(M)?(a++):(a--),则其中表达式M()。
B:只能算是其中一种情况而已,M==0、M==2、M==3 都可以,所以不能说是等价。若给定条件表达式(M)?(a++):(a--),则其中表达式M和(M!=0)等价。很多时候1和true是等价的,但是B选项中的1是整数1,不代表true,看当M的值是2时,B选项的表达式的值就是false了;在C语言中非零数代表...

...a[5]={1,2,3,4,5};char b='c',c; 则下面表达式中数值为 2 的...
b的值为'c',与'b'的ASC码差值是1,a[1]的数值就是2,选D

...c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为 0的是...
【答案】:D 对于表达式’a’&&’b,两个非O运算分量的逻辑与结果为1。对于表达式a<=b,由于关系式成立,结果也为此又由于变量a为非0,表达式a||b+c&&b-c的结果也为1。对于表达式!((a<b)&&!c||1),先是计算(a<b)得到结果1;计算!C得到结果为0;再计算它们的逻辑与,结果...

设a、b和C都是int型变量。且a=3,b=4,c=5,则以下的表达式中值为0的...
【答案】:D D。【解析】||和&&的优先级高于十和一,ll和&&的优先级相等,且是左结合的,就是从左边开始结合到右边。按照这个规则,正确选项为D。

匹配正则表达式[0-9]{4}\\-?[A-Z]+[a-z]*un的字符串有?(不定项)
n是一个非负整数。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等价于“o+”。“o{0,}”则等价于“o*”。var agetest=\/^(\\d{1,3})$\/;0,01,12,123,354,38,2等。正则表达式性质:正则表达式又称规则表达式,计算机科学...

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

临汾市18816798699: PHP中正则表达式中包含三种元素分别是什么?
尘钓去甲: 正则表达式中包含三种元素分别为:量词、元字符、修饰符

临汾市18816798699: 正则表达式:(\s*)[\s*]{\s*}三者一样?假如三种括号里的值是0 - 9,是否也一样? -
尘钓去甲: 正则表达式的() [] {} 有不同的意思.() 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串.(\s*)表示连续空格的字符串.[]是定义匹配的字符范围.比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字.[\s*]表示空格或者*号.{}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s[1,3]表示匹配一到三个空格.(0-9) 匹配 '0-9' 本身.[0-9]* 匹配数字(注意后面有 *,可以为空) [0-9]+ 匹配数字(注意后面有 +,不可以为空) {1-9} 写法错误.[0-9]{0,9} 表示长度为 0 到 9 的数字字符串.

临汾市18816798699: 正则表达式必须包含数字、字母、和特殊字符(! @ # $) 三种,并且长度在12 - 18之间. -
尘钓去甲: ^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$]).{12,18}$ 可以由任意字符组成,但必须包括数字,字母、特殊字符三种字符,且长度在12-18之间

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

临汾市18816798699: 正则表达式([^\[\<]+?])和([^\["\']+?)是什么意思啊? -
尘钓去甲: /\{\{(.+?)\}\}/g 最前面的“/”与最后面的“/”是分隔符,表示正则表达式的开始与结束.最后的“g”标志则表示正则表达式使用的global(全局)的状态.使用 global 标志表明在被查找的字符串中搜索操作将查找所有符合的项,而不仅仅是第一...

临汾市18816798699: 正则表达式的种类?????? -
尘钓去甲: 一个正则表达式,就是用某种模式去匹配一类字符串的一个公式.正则表达式严格说起来是一个抽象的数学概念,这个东西和SQL语句一样,其实各个语言的实现版本基本上都是相同的,无论是java还是perl、js、vb等语言,他们提供的正则表达式核心都是相同的,只是执行的函数、调用的语法、返回匹配项的获取有一些语法规则上的区别.

临汾市18816798699: 正则表达式有哪几种? -
尘钓去甲: 各种语言中的正则引擎其实是不太一样的,如文本始末符,闭包符号,Unicode划定范围,以及取段的符号,其实都可能不同

临汾市18816798699: 急,javascript正则表达式! -
尘钓去甲: JavaScript 的函数声明有以下三种:function funcname() {}var funcname = function() {}var obj = { funcname: function() { }}第一种情况的正则表达式/function\s*(\w+)...

临汾市18816798699: java正则表达式 -
尘钓去甲: ^ 和 $ 他们是分别用来匹配字符串的开始和结束,以下分别举例说明: "^The": 开头一定要有"The"字符串; "of despair$": 结尾一定要有"of despair" 的字符串; 那么, "^abc$": 就是要求以abc开头和以abc结尾的字符串,实际...

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