Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
私はperlで次のスクリプトを持っています:
use strict; use warnings; my $string = "int array[WIDTH][HEIGHT]"; $string =~ s#.*\[##; print($string."\n");
期待される出力:
幅高さ]
実際の出力:
身長]
この正規表現の何が問題になっていますか?
追加して.*怠け者にし?ます:
.*
?
$string =~ s#.*?\[##; ^
これにより、.*一致が可能な限り少なくなるため、最初の一致[を消費せずに停止します。
[
を使用$string =~ s#[^\[]*\[##;して同じことを行うこともできますが、 を[^\[]消費することはできない[ため、怠る必要はありません。
$string =~ s#[^\[]*\[##;
[^\[]