質問: `hoge /path/to/source /path/to/target` のコマンド文の様なフォーマットの文字列があったとします。 この文字列を正規表現等で解析し、各セクションを後方参照でそれぞれ取り出したく ``` ([a-z]+) ([^ ]+) ([^ ]+) ``` このような感じで規定しておりましたが、 targetに半角スペースを含む場合"path/to/tar get"というように ダブルクォーテーションを使って半角スペースを許可したく思います。 使用言語はPythonで、reを使用していますが、Perl準拠の正規表現であれば言語は特にこだわりはありません。 プラットフォームはLinuxベースですがこちらも特に指定は有りません。 現状はまずダブルクォーテーションで括られている範囲を探し ダブルクォーテーションが存在するなら、括られた範囲内の半角スペースを適当なタグに置換の後 半角スペース区切りで各セクションを取り出し タグを半角スペースに戻す という手順を踏んでいますが 1回の正規表現でマッチできるような文がありましたらお知恵を拝借頂きたく思います。
回答: だいぶ乱暴ですが、空白を許可するのが二つ目の引数だけであれば、例えば以下の様にできそうです。 ``` pattern = '([a-z]+) ([a-z\/]+) \"?([a-z\/ ]+)\"?' ```