[英]PHP Regex: group must end with character but do not capture this character
正则表达式示例:
/^([\w]+:)?other:(.*)$/
示例字符串:
test:other:words...
第一组将匹配“ test:”,但我希望它仅捕获“ test”。 起初我以为:
/^([\w]+)?:?other:(.*)$/
但我意识到一开始我不可能只有一个: 。 我如何捕获一个组,如果存在该组必须以:结尾,但是:该组一定不能捕获该组?
输入和输出示例:
randomString:constantString:somethingElse
应该给“ randomString”作为第一组。
和
constantString:somethingElse
应该给第一组为空
如果您希望第一个单词是可选的,请使用:
/^(?:(\w+):)?other:(.*)$/
此正则表达式使\\w+:
成为整个非捕获组,并使其可选。 此外,它还使用内部的捕获组来捕获\\w+
部分。
因此,如果\\w+:
存在,则组1包含\\w+
部分,否则它包含一个空字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.