1

我在 perl 中有以下脚本:

use strict;
use warnings;

my $string = "int array[WIDTH][HEIGHT]";

$string =~ s#.*\[##;

print($string."\n");

预期输出:

宽度][高度]

实际输出:

高度]

这个正则表达式有什么问题?

4

1 回答 1

2

通过添加使.*懒惰?

$string =~ s#.*?\[##;
               ^

这将使.*匹配尽可能少,因此首先停止[而不消耗它。

你也可以$string =~ s#[^\[]*\[##;用来做同样的事情,而且[^\[]不能消费[,所以没必要偷懒。

于 2013-07-07T11:25:58.020 回答