2

Python 経由で発行している grep コマンドでこのパターンを一致させる方法がわかりません。

の形式で文字列を一致させたい

foo.bar([anything including newlines, spaces, tabs]).

私は試しています:

regex = " foo.bar(.*) "
bashCommand = "grep"+" -r -h"+regex+baseDir
process = subprocess.Popen(bashCommand.split(), stdout=subprocess.PIPE)
requires = process.communicate()[0]

しかし、私はこの文字列と一致しません

dojo.require("abc.def"


    );
4

2 に答える 2

1

Grepは行ごとに機能するため、「。」実際には改行と一致しません。この回答が役立つ場合があります。

于 2012-10-24T02:39:00.383 に答える
0

デフォルトでは、Pythonの「re」モジュールには「。」があります。改行以外のすべてに一致します。正規表現にフラグとしてre.DOTALLを渡したいと考えています。

例:

rx = re.compile('foo\.bar\(.*\)', re.DOTALL)
assert rx.match('foo.bar("mystuff"\n\nand here!)')

http://docs.python.org/library/re.html#re.S

于 2012-10-24T02:38:02.237 に答える