私の質問はHow do I re.search or re.match on a whole file without reading it all into memory?と同じ質問ですが、perlの代わりにPythonのPerlの正規表現:ファイル全体をメモリに読み込まずに複数行のパターンを検索するにはどうすればよいですか?
質問使用: を私はファイル全体で正規表現を実行することができるようにしたいが、私は持っていないことができるようにしたいのですが私は将来大容量のファイルを扱うかもしれないので、ファイル全体を一度にメモリに読み込むことができます。これを行う方法はありますか?ありがとう!
説明:複数の行にまたがることがあるため、行単位で読み込むことはできません。
私はなぜpythonの代わりにperlを使用していますか?私はperlに切り替える必要があるpythonの正規表現に関する十分な問題にぶつかってきました。私はhttps://pypi.python.org/pypi/regexをインストールしますが、自分の職場ではPythonのインストールディレクトリへの書き込みアクセスを許可していませんし、私のためにそれをインストールするためにITの遅い電子メールチェーンを避けたいと思います。 /またはさらなる権限の問題に対処:)
編集:私は、私は上記のようなパターンを探しています
assign signal0 = (cond1) ? val1 :
(cond2) ? val2 :
val3;
assign signal1[15:0] = {input1[7:0], input2[7:0]};
assign signal2[34:0] = { 4'b0,
subsig0[3:0],
subsig1,
subsig2,
subsig3[18:2],
subsig4[5:0]
};
を探しています例のパターンを、私はセミコロンが表示されるまで、変数の代入をアップすなわち。パターンが複数行かどうかわからないので、正規表現は上記のいずれかにマッチします。おそらく/assign\s+\w+\s+=\s+[^;];/m
に似ています。すなわち、セミコロンが表示されるまで続きます。
EDIT2:パターンを開始、中、&終了セクションに分解すると、パターンが最善の戦略になる可能性があります。範囲演算子をいくつか提案したように使用します。
あなたは一致する部分だけを記憶しておきたいですか?その後、完全一致が得られるまで進んで行を読むことができます。一致がなければ最初に行を破棄します。 –
あなたの会社はあなたの開発作業をまったく別の言語に切り替えても大丈夫ですが、モジュールをインストールさせますか? – ThisSuitIsBlackNot
また、[virtualenv](http://docs.python-guide.org/en/latest/dev/virtualenvs/)について聞いたことがありますか?ホームディレクトリに必要なすべてのモジュールをインストールできます。ルートアクセスは必要ありません。 – ThisSuitIsBlackNot