c - Posix 正则表达式非捕获组

标签 c regex linux posix

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

"^(?:[A-Za-z0-9]+)( [A-Za-z0-9]*(?:\"[^\"]*\")*(?:\'[^\']*\')*[A-Za-z0-9]*)*&?$"

最佳答案

POSIX Regular Expressions 中不允许使用 (?:..) 或任何其他分组前缀.

有制作语言的工具, & 例如,一个简化的 POSIX shell 的语法 is provided by the standard .

关于c - Posix 正则表达式非捕获组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40816011/

相关文章:

java - 正则表达式用于在没有被单引号或双引号包围时使用空格分割字符串

linux - 如果没有这样的文件,则输出错误

linux - 当 xinetd 通过 udp 接收消息时将参数传递给 Bash 脚本

C:在单独的函数中操作结构

c - 序列化:char 和 uint32_t 的大小

regex - 第一个字符是字母的正则表达式是什么?

java - 如何匹配满足特定模式的字符串后的子字符串

linux - 如何使用 GNU Automake 后安装某些东西?

c - 语法错误 : 'type'

c++ - 在 C/C++ 中,反转字节中位顺序的最简单方法是什么?