Posix正则表达式非捕获组

luk*_*180 5 c regex linux posix

我在linux下用C编写一个简单的shell.我正在尝试使用POSIX正则表达式解析用户输入和组捕获.我的问题是我不想捕获所有组,但?:符号desnt似乎对我有用.

"^(?:[A-Za-z0-9]+)( [A-Za-z0-9]*(?:\"[^\"]*\")*(?:\'[^\']*\')*[A-Za-z0-9]*)*&?$"
Run Code Online (Sandbox Code Playgroud)

kdh*_*dhp 6

POSIX正则表达式中(?:..)不允许使用或任何其他分组前缀.

有一些工具可以生成语言,例如,标准提供了 POSIX shell 的简化语法.