c++ - 正则表达式,丢失结果组

标签 c++ regex

我的 cpp 应用程序正在尝试解析具有以下模式的字符串:

^\/color( set| update)? (#[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})|([a-zA-Z]{1,20})$

试运行

/color set #ffffff - 得到 2 组('set 和 '#ffffff') enter image description here

/color set red - 得到 1 个带'red'的组,带'set'的组发生了什么? enter image description here

最佳答案

问题是,您的分组不正确/不必要。使用以下内容:

^\/color\s(set|update)?\s?(#[A-Fa-f0-9]{6}|#[A-Fa-f0-9]{3}|[a-zA-Z]{1,20})$

DEMO

关于c++ - 正则表达式,丢失结果组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42630286/

相关文章:

c++ - std::regex_replace 期间的堆栈溢出

python - 如何将带有多个字符的定界符的 .text 解析为 pandas df?

c++ - QML 应用程序 block

c++ - 如何显示凸多边形?

c++ - 我应该为 WNDCLASSEX 结构中的 hIcon 和 hIconSm 使用什么值?

regex - Perl 正则表达式压缩多个换行符

python - 在 Python 中使用从字符串中删除\xa0

c++ - 如何在 vim 的颜色方案文件中更改运算符 (+ - */< >) 的颜色

c++ - 使用重新定义的 PS1 环境变量运行 bash

Java 模式匹配返回所有组子字符串