php正则表达式++什么意思?

preg_match('/^[^\:]++(\:[^\:]++)*$/', $name)

php正则表达式++什么意思?

阅读 2.5k
3 个回答

/.*?/ /.*+/ 贪婪匹配和非非贪婪匹配, 默认就是贪婪的, 所以第二个+可以省略

我认为转义++号才有意义
原文的意思可能是匹配形如user:identifier:password这样的$name
捕获的是user后的信息,这样的字符串写法常见于redis或特殊自定义信息。
又因为尾部的*号, 所以也能单纯的匹配形如user$name
所以我猜测原文的意思可能是^[^\:]+(:[^\:]+)*$

相关链接 正则表达式 贪婪与非贪婪模式 区别

JS 中这种写法是不允许的,但我不了解 PCRE 是怎么样,然后就去 regex101 试了一下

regex101

根据我的理解, 两个加号和一个表现完全相同,是没有意义的写法。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题