我試圖捕獲一個子字符串使用正則表達式捕獲與grep通過獲取(。*)在下面的代碼中的內容。我怎樣才能獲得perl grep執行正則表達式捕獲
@substring = grep /^test-results(.*)/,@$(array_reference);
這不是工作....
我試圖捕獲一個子字符串使用正則表達式捕獲與grep通過獲取(。*)在下面的代碼中的內容。我怎樣才能獲得perl grep執行正則表達式捕獲
@substring = grep /^test-results(.*)/,@$(array_reference);
這不是工作....
也許map
功能是你想要的東西更適合。您正在尋找類似以下內容(未經測試)代碼的東西:
@substrings = map { /^test-results(.*)/ ? $1 :() } @{ $arrayref };
在列表上下文中,正則表達式匹配返回其捕獲所匹配的列表,所以你需要的是:
@substrings = map /^test-results(.*)/, @$array;
+1'map' FTW! @ikegami! – Jess
感謝您的有用的地圖工具.... –
永遠不要使用'$ 1'和朋友以外的條件。捕獲來自上次成功的匹配。更好的是'@substrings = map {/ ^測試結果(。*)/? $ 1:()} @ {$ arrayref};'。 –
@Greg:謝謝!我做了一個假設,當然一切都會匹配,可能相當不正確。更換。 :) – sarnold