簡體   English   中英

Perl正則表達式將字符串部分轉換為數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM