1
我在Perl以下腳本:Regex的去除指定之前的所有符號
use strict;
use warnings;
my $string = "int array[WIDTH][HEIGHT]";
$string =~ s#.*\[##;
print($string."\n");
預期輸出:
WIDTH] [HEIGHT]
實際輸出:
HEIGHT]
這個正則表達式有什麼問題?
我在Perl以下腳本:Regex的去除指定之前的所有符號
use strict;
use warnings;
my $string = "int array[WIDTH][HEIGHT]";
$string =~ s#.*\[##;
print($string."\n");
預期輸出:
WIDTH] [HEIGHT]
實際輸出:
HEIGHT]
這個正則表達式有什麼問題?
充分利用.*
懶加入?
:
$string =~ s#.*?\[##;
^
這將使.*
匹配儘可能少,因此在第一[
停止不消耗它。
你也可以用$string =~ s#[^\[]*\[##;
做同樣的事情,[^\[]
不能消耗[
,所以不需要懶惰。
謝謝!它有幫助。我會在接下來的15分鐘內接受你的回答。 – Alex
@亞歷克斯,不客氣:) – Jerry
+1爲下一行的小克拉:)(和cos是正確的) – Bohemian