0

行頭にワイルドカードを使用するには? abc例、 に置き換えたいdef

これは私のファイルがどのように見えるかです

     abc
    abc
abc
hg  abc

ここabcで、最初の 3 行だけを置き換える必要があります。どうやってするの?

$_ =~ s/['\s'] * abc ['\s'] * /def/g;

最初のスペースの開始前に置く条件は?

ありがとう

4

4 に答える 4

2

どうですか:

s/(^ *)abc/$1def/g

(^ *)-> 行頭に 0 個以上のスペース

これにより、abc が defに厳密に置き換えられます。

また、 「最初のスペースの始まり」\sと言ったからではなく、実際のスペースを使用したことに注意してください。スペースだけでなく、より多くの文字に一致します。\s

于 2013-06-27T09:49:47.323 に答える
1

文字を使用^し、不要なアポストロフィ、スペース、および[ ]:を削除します。

$_ =~ s/^\s*abc/def/g

「abc」の前にあったスペースを保持したい場合:

$_ =~ s/^(\s*)abc/\1def/g
于 2013-06-27T10:00:30.530 に答える