Closed. This question needs to be more focused。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
                        
                        3年前关闭。
                                                                                            
                
        
我试图从c中的单词字符串中提取一个小的子字符串。我使用以下代码在用python编写的先前程序中做到了:

out_block = "".join(re.findall(r'.FT off(.*?).FT on',finaltext,re.DOTALL))


该代码提取.FT off.FT on之间的所有字符,并将其作为字符串传递给out_block

我想知道如何在C语言中使用正则表达式执行相同的操作

我如何将这段代码转换为完全相同的C代码?

最佳答案

基本上,您可以这样做:

#include <sys/types.h>
#include <regex.h>

regex_t finder;
if (0 != regcomp(&finder, "regex-string", 0)) { error handling }


您可能需要在上面调整您的正则表达式字符串。

之后,您可以执行任意多次:

regmatch_t match[N_MATCH];
if (0 == regexec(&finder, "haystack", N_MATCH, match, 0)) {
    process matches
} else {
    no match
}


使用regfree清理并使用regcomp获取错误消息(在regerror中)。

有关更多详细信息,请参见手册页regex(3)。

关于c - 使用正则表达式提取C语言字符串中的单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40824839/

10-12 12:47
查看更多