正規表現を使用して、コマンド文字列をセグメントに分割する必要があります。カスタム関数を作成するための非常に基本的なパーサーを探しています。たとえば、次のコマンドがあります。
rm --remove all --keep some --but-not *.php --or-like "?-imp-*.*"
ここで、この文字列をそれぞれ引数の名前と値を含む複数のセグメントに分割したいと思います。
rm
--remove all
--keep some
--but-not *.php
--or-like "?-imp-*.*"
したがって、各セグメントを空白からさらに分割し、引数の名前と値を分離することができます。
私は正規表現が苦手です。これまでのところ、引数と値の部分のみを抽出するためにこの正規表現を作成しましたが、文字列の末尾にある単語*
や、およびのような特殊文字を含む単語には一致しません。?
正規表現
(?<=\s)--([^--]*)(?=(\s--))
そして、コマンドの名前を取得します
(^\w+)
これについて何か考えはありますか?