正则表达式中小括号、中括号、大括号的作用详细讲解
作者:codelyq
在正则表达式中,小括号 ()
、中括号 []
和大括号 {}
各自具有特定的含义:
小括号()
- 分组:
小括号用于将正则表达式的一部分组合在一起,形成一个分组。
这对于后续的引用
、条件判断
或者捕获匹配结果
非常有用。
小括号就是分组
- 捕获分组:
当正则表达式中使用小括号时,它会创建一个捕获分组。
(pattern)
这就是一个捕获分组。
这意味着匹配到的、该分组的内容,可以在后续的操作中被单独提取
或使用
。
- 非捕获分组
如果你不希望捕获某个分组的内容,
可以在小括号内加上 ?:
来创建一个非捕获分组,
例如 (?:pattern)
。
- 条件判断:
在某些支持正则表达式的语言中,
小括号可以用于实现条件判断,
如“前瞻断言”
或“后顾断言”
。
这一块,我会单独讲的,这里就不讲了。
中括号[]
- 字符集
中括号用于定义一个字符集,表示匹配方括号中的任意一个字符。
例如,[abc]
将匹配字符 ‘a’、‘b’ 或 ‘c’。
- 范围
在中括号内,你可以使用连字符 -
来表示字符的范围。
例如,[a-z]
将匹配任意小写字母。
- 否定字符集
在中括号的最开始加上^
符号,
可以表示否定字符集,
即匹配不在方括号中的任意一个字符。
例如,[^0-9]
将匹配任意非数字字符。
- 特殊字符
在中括号内,一些正则表达式中的特殊字符(如 .
、*
、+
等)
将失去其特殊含义,而只表示字面字符。
这一点是要注意的。
大括号{}
- 限定符
大括号用于指定前面字符或分组的出现次数。
例如,a{3}
将匹配三个连续的 ‘a’ 字符。
- 范围
在大括号内,你可以使用逗号 ,
来指定一个范围,
表示前面的字符或分组至少出现多少次,最多出现多少次。
例如,a{1,3}
将匹配一个到三个连续的 ‘a’ 字符。
- 贪婪与非贪婪
当使用大括号时,默认是贪婪匹配,即尽可能多地匹配字符。
如果你想进行非贪婪匹配(尽可能少地匹配字符),
可以在大括号后面加上 ?
,如 a{1,3}?
。
附:正则表达式:(\s*)[\s*]{\s*} 区别
正则表达式的() [] {}有不同的意思。
() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。
(\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 的数字字符串。
过滤内容里面有数或空格数字
preg_replace("/\d{1,}\s{0,1}/", "xxxxxxxx", $signaturecontent);
总结
小括号是分组、中括号是内容、大括号是次数。
到此这篇关于正则表达式中小括号、中括号、大括号作用的文章就介绍到这了,更多相关正则表达式括号作用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!