首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式模式中的()和[]有什么区别?

正则表达式模式中的()和[]有什么区别?
EN

Stack Overflow用户
提问于 2010-09-25 01:12:52
回答 6查看 76.3K关注 0票数 51

在() ()(括号)中封装正则表达式的一部分与在square brackets中封装正则表达式有什么区别?

如何做到这一点:

代码语言:javascript
复制
[a-z0-9]

与此不同:

代码语言:javascript
复制
(a-z0-9)
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-09-25 01:16:00

[]表示一个字符类。()表示捕获组。

[a-z0-9] --一个在a-z0-9范围内的字符

(a-z0-9) --显式捕获a-z0-9。没有范围。

a --可以被[a-z0-9]捕获。

a-z0-9 --可以由(a-z0-9)捕获,然后可以在替换和/或以后的表达式中引用。

票数 58
EN

Stack Overflow用户

发布于 2010-09-25 01:14:14

(…)是一个对内容进行分组的group,就像在数学中一样;(a-z0-9)a-z0-9的分组序列。组尤其与允许将前面的表达式作为一个整体重复的quantifiers一起使用:a*b*匹配任何数量的a,后跟任何数量的b,例如aaaabbbbbb等;相反,(ab)*匹配任何数量的ab,例如D13、D14等。

[…]是一个描述单个字符选项的character class[a-z0-9]描述一个范围为a-z0-9的单个字符。

票数 22
EN

Stack Overflow用户

发布于 2010-09-25 01:15:29

正则表达式中的[]结构本质上是对所有内容的|的简写。例如,[abc]匹配a、b或c。此外,-字符在[]中具有特殊含义。它提供了一个范围结构。正则表达式[a-z]将匹配任何字母a到z。

()构造是一个建立优先顺序的分组构造(它对访问匹配的子字符串也有影响,但这是一个更高级的主题)。正则表达式(abc)将匹配字符串"abc“。

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3789417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档