请原谅我英语不好。让我说得更清楚一点:我有一个cpp文件,其中有一些文本,例如:
snprintf(buf,sizeof(buf),"It is python %d,%s",32,"Hello world");
Fmt(100,"This is another %d %s statement",a.getsize().getsize(),"hello")
当然,还有一些其他的文本
我要做的是使用python正则表达式来读取这个文件,匹配这些文本,并将这些匹配组输出到另一个文件中 我希望正则表达式匹配组为:
"It is python %d,%s",32,"Hello world"); or
"This is another %d %s statement",a.getsize().getsize(),"hello"
我试过下面这些正则表达式
pattern1=r"\bsnprintf\s*\(\s*\w+\s*\,.*?(\"(?:.|\n)*?)"\)\;"
pattern2=r"\bFmt\b\s*\([\s*\d+\s*\]\s*\,\s*(\".*?\))
但我被困在这里: patter2是唯一匹配组“这是另一个%d%s语句”,a.getsize()。这不是我想要的
不能有完整的泛型表达式,因为有无限个组合。 任何c字符串说明符都可以按任何顺序多次使用。 例如;以%d和%s为例: “%d”,“%d%s”,%d%s%d”,你明白了
但是,您可以匹配字符串“”并以编程方式对其进行解析,或者使用regex对组合的子集进行解析
相关问题 更多 >
编程相关推荐