C++ 合相范式正则表达式
c++ conjuntive normal form regex
我想建立一个正则表达式,说是一个表达式是合取范式(CNF(。
在以下情况下,表达式 E 位于 CNF 中:
- 其所有子句的格式均为
(V1 ∨ V2 ∨ ... ∨ Vn)
- 在子句 Ci 之间,只有 &,即:
E = C1 & C2 & ... & Ck
- 变量 V1、V2、...只能
{P, Q, R, S, ~P, ~Q, ~R, ~S}
示例:E = (P ∨ Q) & (Q ∨ R ∨ S) & (R ∨ Q)
我如何编写这样的正则表达式(没有空格(?
我想一定是这样的:
regex reg("[(~?[PQRS]{1}[v~?[PQRS]{1}]*)&]*(~?[PQRS]{1}[v~?[PQRS]{1}]*)");
但它给了我regex_error。
已解决。我错误地使用了(
和)
。
答案是:
regex reg("(\(~?[PQRS](v~?[PQRS])*\)&)*\(~?[PQRS](v~?[PQRS])*\)");
相关文章:
- 使用正则表达式regex_search在字符串中查找字符串
- 在 C++ 中使用正则表达式错误时出现问题 括号表达式中的范围无效
- C++正则表达式无限循环
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- 定义有趣的宏和正则表达式在Z3 C++绑定
- 带有多个字符分隔符的正则表达式
- C++ 使用增强正则表达式库时断言崩溃
- 有人可以帮助我处理正则表达式吗?
- 使用正则表达式获取大括号块的列表
- 正则表达式以匹配数字的重复模式,后跟任何类型的分隔符?
- 组合正则表达式部分使用 | 不起作用的 C++
- 为什么C++正则表达式这么慢?
- 如何使HTML5电子邮件验证正则表达式在C++中工作?
- 在C++中实现正则表达式
- C++正则表达式替换整个单词
- 用C++编写正则表达式的正确方法是什么?
- 如何从Stroustrup的C++书中解释这个正则表达式?
- 为什么这个正则表达式C++在括号表达式中抛出无效范围异常?
- C++:匹配正则表达式,什么是匹配?
- C++ 合相范式正则表达式