首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >正则表达式差异:(\w+)?和(\w*)

正则表达式差异:(\w+)?和(\w*)
EN

Stack Overflow用户
提问于 2013-01-17 14:28:06
回答 1查看 91K关注 0票数 27

在正则表达式中,(\w+)?(\w*)有什么不同吗?

看起来是一样的,不是吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-17 14:37:31

(\w+)?(\w*)都匹配相同(0..+inf word字符)

但是,有一个细微的区别:

在第一种情况下,如果正则表达式的这一部分与""匹配,则捕获组将不存在。在第二种情况下,它是空的。在某些语言中,前者表现为null,而后者应始终为""

例如在Javascript中,

代码语言:javascript
复制
/(\w*)/.exec("")  // ["", ""]
/(\w+)?/.exec("") // ["", undefined]

在PHP (preg_match)中,在前一种情况下,匹配数组中只缺少相应的键:http://3v4l.org/DB6p3#v430

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

https://stackoverflow.com/questions/14373310

复制
相关文章

相似问题

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