c++ - 解析字符串的正则表达式模式

标签 c++ regex qt

所以我需要找到一个正则表达式来解析几个具有相同正则表达式的不同情况。

第一种情况:

Type(arg1, arg2)

我需要从该字符串中获取 Typearg1arg2

第二种情况:

Type(arg1, arg2, ...) (the number of args is variable)

我需要获取 Typearg1arg2 和所有其他 arg。

第三种情况:

Type(arg1 + arg2) or Type(arg1 - arg2) or (lets just say that it can take really any form)

这里我需要Typearg1 + arg2

注意:我不反对使用两个正则表达式,这意味着如果我可以用一个正则表达式得到“Type”和括号内的任何内容,然后使用第二个正则表达式将逗号分隔的 args 分开,那没问题,只是不行首选。

最佳答案

您可以使用如下正则表达式:

(\w+\s*[+-]?\s*\w+)

Working demo

更新:如果你的模式可以采用任何形式,那么你可以使用这个模式:

([^(),\n]+)

这个想法是匹配除了括号、逗号和换行符之外的任何东西

关于c++ - 解析字符串的正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40265063/

相关文章:

c++ - 编译器会优化和重用变量吗

python - 如果前两个字母在 python 中重复,则替换

c++ - 为什么执行 socket::readyRead() 的新信号,即使其较早的插槽仍在处理中?

c++ - 插入C结构函数指针

c# - 从 C# 调用非托管 .dll 的性能

regex - 为什么正则表达式不适用于 Perl 中的全局标识?

c++ - 当底层模型发生变化时,如何在 QTableView 中禁用自动滚动到顶部?

c++ - Qt 5 安装失败

c++ - 经典 C++ 中的数据文件处理(很像 C)

java - 尝试检查字符串是否包含特殊字符或小写java