0

私の質問に関連する回答を見つけるために、いくつかの投稿や他のフォーラムを調べましたが、私が必要としているものに固有のものは何も見つかりませんでした. 注意点として、私はプログラミングが初めてで、ほとんどの人がするような基本的な基礎を持っていません。

私は bash と小さな Python を知っており、RE についてはまともです。

REを使用してデータを解析し、必要/必要な出力を提供するPythonスクリプトを作成しようとしています。

出力は 4 つの値で構成され、すべて 1 行から発生します。読み込まれる行は、区切り文字が定義されていない状態でスローされます。(したがって、私のプログラムの理由)

4 つの値の 1 つを見つけるには、「探して123-、その後すべてを与える」と言わなければなりませんが、ここでやめますdf5。は123-定数ではありませんが、機能する正規表現によって定義されます。同じことが にも当てはまりdf5ます。両方の RE を変数に割り当てました。これらの変数を使用して、2つの間で必要なものを見つけるにはどうすればよいですか...これが理にかなっている場合はお知らせください。

4

2 に答える 2

3
import re
start = '123-'
stop = 'df5'
regex = re.compile('{0}(.*?){1}'.format(re.escape(start), re.escape(stop)))

これらの文字列の例では呼び出しは必要ありませんが、区切り文字に正規表現 ( 、、など)でre.escape()特別な意味を持つ文字を含めることができる場合は重要です。.*+?

于 2013-06-20T16:08:11.840 に答える
0

パターンは"%s(.*?)%s" % (oneTwoThree, dF5)どうですか?次に、そのパターンで re.search を実行し、結果に対してグループ機能を使用できます。

ライン上の何か


pattern = "%s(.*?)%s" % (oneTwoThree, dF5)
matches = re.search(pattern, text)
if matches:
    print matches.groups()

re.search の代わりに re.findall を使用すると、一致をグループ化する手間を省くことができます。

于 2013-06-20T16:07:56.527 に答える