2016-11-27 5 views
0

私はcの単語の文字列から小さな部分文字列を抽出しようとしています。コードは.FT off.FT onの間のすべての文字を抽出し、文字列としてout_blockに渡し正規表現を使用してCの文字列内の単語を抽出する

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

:私はこのコードを使用してPythonで書かれた前のプログラムでそれをやりました。

私はまったく同じことを行いCコードにこのコードを変換する方法を

正規表現を使用して同じことを行う方法を知りたいと思ったが、C

で?あなたは上記のあなたの正規表現文字列を調整する必要があるかもしれません

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

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

+0

あなたはどの正規表現ライブラリを使用していますか? – melpomene

+1

これは、正規表現が行うことではない、btw。 – melpomene

+0

@melpomeneしかしそれはまさにそれを実行し、それをしました。それはリストとしてブラケットの単語の間の単語を抽出し、私はリストに参加し、文字列としてout_blockに渡し、それはまったく同じように働いた – Drew

答えて

0

Basiclyあなたがこれを行います。

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

regfreeを使用してクリーンアップしregerrorを使用して、エラーメッセージ(regcompで)を取得する:あなたは何度でも行うことができます。その後

詳細については、マニュアルページregex(3)を参照してください。

+0

これは "regex-string"というパターンで、 "haystack"は検索対象の文字列になりますそう? – Drew

+0

yea [投稿されたばかりのスパム] –

関連する問題