C++ regex模式的反向应用程序使用

C++ regex模式的反向应用程序使用,c++,c,regex,C++,C,Regex,是否有一个“ready way”/库可以从正则表达式模式中提取模式以供使用sprintf()或std::cout 对于正则表达式模式验证,我使用“regex.h” 以及将验证模式存储为,例如: "A((\\+|\\-)(\\d|\\.){6})\\r" "G((\\+|\\-)(\\d|\\.){6})\\r" 我想要像“A+%06f”,“G+%06f”,我所经历的“regex.h”(某些版本的GNU libc)在运行时构建正则表达式时,似乎会进行很多内存分配,这使得它对于格式说明符等简单模式

是否有一个“ready way”/库可以从正则表达式模式中提取模式以供使用
sprintf()
std::cout

对于正则表达式模式验证,我使用“regex.h”

以及将验证模式存储为,例如:

"A((\\+|\\-)(\\d|\\.){6})\\r"
"G((\\+|\\-)(\\d|\\.){6})\\r"
我想要像
“A+%06f”
“G+%06f”
,我所经历的
“regex.h”
(某些版本的GNU libc)在运行时构建正则表达式时,似乎会进行很多内存分配,这使得它对于格式说明符等简单模式效率低下,因此,我怀疑任何实际的C库实现是否会使用regex.h作为格式说明符,这反过来又使得像您搜索的函数这样的函数不太可能存在


此外,您的正则表达式似乎与字符串(如
“A+…”
)匹配,而这些字符串与您提供的两个格式说明符都不匹配。

不,它“似乎与字符串(如“A+…”)不匹配”。h是POSIX,而不是GNULIBC的某个版本。问题不在于libc中是否存在这样的函数。@Maquefel:
(\d| \.){6}
匹配“…”,@Zeta-是的。如果问题不清楚,我可以澄清。问题不在于是否匹配模式,而在于一个现成的库,它可以识别模式中的(\\+\\-)\\d{6}并替换为%+06d。如果有人知道这样的库的存在,他会提供相关信息。没有办法做到这一点,但对于简单的情况,你可以自己编写。这个答案在[A+]正则表达式上: