行頭にワイルドカードを使用するには? abc
例、 に置き換えたいdef
。
これは私のファイルがどのように見えるかです
abc
abc
abc
hg abc
ここabc
で、最初の 3 行だけを置き換える必要があります。どうやってするの?
$_ =~ s/['\s'] * abc ['\s'] * /def/g;
最初のスペースの開始前に置く条件は?
ありがとう
どうですか:
s/(^ *)abc/$1def/g
(^ *)
-> 行頭に 0 個以上のスペース
これにより、abc が defに厳密に置き換えられます。
また、 「最初のスペースの始まり」\s
と言ったからではなく、実際のスペースを使用したことに注意してください。スペースだけでなく、より多くの文字に一致します。\s
文字を使用^
し、不要なアポストロフィ、スペース、および[
]
:を削除します。
$_ =~ s/^\s*abc/def/g
「abc」の前にあったスペースを保持したい場合:
$_ =~ s/^(\s*)abc/\1def/g