我正在 linux 下用 C 编写一个简单的 shell。我正在尝试使用带有组捕获的 POSIX 正则表达式来解析用户输入。我的问题是我不想捕获所有组,但 ?: 符号 desnt 似乎对我有用。
"^(?:[A-Za-z0-9]+)( [A-Za-z0-9]*(?:\"[^\"]*\")*(?:\'[^\']*\')*[A-Za-z0-9]*)*&?$"
最佳答案
在 POSIX Regular Expressions 中不允许使用 (?:..)
或任何其他分组前缀.
有制作语言的工具,lex & yacc例如,一个简化的 yacc POSIX shell 的语法 is provided by the standard .
关于c - Posix 正则表达式非捕获组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40816011/