[英]Perl regex String part to array
我有一個字符串:
"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]"
如果它們必須是有效的變量名(標識符),請嘗試
m/(\$\w+\[[^]]+\])/g
正如@Borodin指出的那樣,如果您確實要確保只匹配標識符(而不是像$3abc[12]
這樣的奇怪東西),則可以使用
m/(\$[a-z_]\w*\[[^]]+\])/gi
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.