これは私の2番目の質問ですが、私はこのサイトをたくさん読んでいます。とにかく、私はPythonの行と一致する正規表現を取得するのに問題があります。私がやっていることは、SVNからログを取得し、それをsvn_logに保存することです。私はその後、行ごとにログを読み込み、それを正規表現パターンと照合しようとするforループに入りますが、常に一致するものは返されません。ここで私が実行しているforループです:問題がRegexを行と一致させるにはPython
#Scan each line until the changed paths are located.
pattern = re.compile(r"((M|A|D) /.+)")
changed_paths = []
for line in svn_log:
if pattern.match(line):
# Save the changed paths in a list.
changed_paths.append(line)
を私のコメントが言及したように、私はSVNのログから変更されたパスを取得しようとしています。変更したいパスは、M、A、またはD文字で始まります。次に、このスクリプトをテストするために使用するログの例を示します。
r14 | autobuild | 2016-12-27 16:22:21 -0800 (Tue, 27 Dec 2016) | 2 lines
Changed paths:
M /trunk/src/board/ozmo.c
M /trunk/src/ganymede/main.c
私はこのログからそれぞれの行を解析し、それを印刷することがですが、私は最後の2行で私の正規表現パターンに一致しようとすると、私は試合を取得していない、と何も私のchanged_paths
変数に追加されなかっます。私は、次のWebサイトを使って正規表現をテストしようとしました:http://www.pyregex.comそれは私のスクリプトにはありません。私の正規表現のパターンやループの中に何かが間違っていると私に知らせてください。ありがとう。
を設定しました! '\ s'を使うと、文字セットの前にあるすべての空白文字を含むことになると思いましたが、文字セットの前に空白文字をすべて含めるには' \ s * 'をインクルードする必要がありました。ありがとうございました! –