1

私は文字列を持っています:

"2012-szept-17 02:55 - someproblem: 192.167.1.1 since - $somevariables[0] $morevariables[-1]"

これらを配列に入れたい

$somevariables[0]
$morevariables[-1]

問題は、これらの変数には他の名前を付けることができ、文字列内のどこにあってもかまいません。私が彼らについて知っている唯一のことは、彼らが最初に$そして最後に持っているということ[sg]です。

これは私が正規表現で得た最も遠いです

my @fuu = $notimsg =~ m/(\$.+\[.+\])/g;

問題は、式がこれを次のようにしていることです"$somevariables[0] $morevariables[-1]"

4

1 に答える 1

1

それらが有効な変数名(識別子)でなければならない場合は、試してください

m/(\$\w+\[[^]]+\])/g

@Borodinが指摘しているように、識別子のみに一致することを本当に確認したい場合(およびのような奇妙なものではない場合$3abc[12])、次を使用できます。

m/(\$[a-z_]\w*\[[^]]+\])/gi
于 2012-09-17T01:25:41.183 に答える