2

私がやろうとしているのは、引数を既存の文字列「./executable.sh」に連結するだけなので、出力行セットは次のようになります

./executable.sh argument1
./executable.sh argument3
./executable.sh argument2
  ...
  ...

以下は「文字列への置換」ステップです。検索は (.*) に設定されます。置換フィールドは ./executable.sh $1 に設定されます

文字列ステップで置換

私が得ている結果は次のとおりです。

./executable.sh argument1./executable.sh 
./executable.sh argument2./executable.sh 
./executable.sh argument3./executable.sh 

置換の最後に最初の文字列が追加されるのはなぜですか?

ありがとうございました。

4

1 に答える 1

1

ここでの問題は、正規表現が文字列の後に一致する null/空の文字列に一致する可能性があることです (つまり、舞台裏のエンジンが文字列を 2 つの部分に分割します: すべての文字と終端の null 文字列、したがって、2 つの一致が得られます)交換されます)。

それを避けるには、次のいずれかを使用する必要があります

(.+)

また

^(.*)$

(.+)パターンは、改行以外の 1 文字以上に一致し、文字列の先頭 ( ) から末尾 ( ) までの改行以外の 0 文字以上に一致し^(.*)$ます。2 番目のパターンの明示的なアンカーは、入力の末尾にある null 文字列との一致をなくすのに役立ちます。^$

于 2015-12-10T11:35:41.083 に答える