2015-05-18 66 views
1

我一直在用perl腳本工作,我一直在嘗試使用正則表達式從系統輸出中篩選出每行的最後一個單詞。 我用下面的命令列出所有服務,該命令是:「服務--status所有」命令將輸出所有可用的服務,如列表:Perl - 正則表達式篩選掉最後一個詞

rdisc is stopped 
rpcbind (pid 1339) running... 

我扔輸出到一個數組和咬食在每一個新行:

chomp(my @service_data_1 = qx/$command_3/); 

我只想打印出用戶請求的服務,並告知如果該服務正在運行或停止用戶。

我想知道如何使用正則表達式過濾每行的最後一個單詞,我無法找到任何解決方案,我的問題在任何地方,而不是在這裏在stackoverflow。 任何幫助或對此的輸入將不勝感激。

+0

您的預期產出是多少? – serenesat

+0

什麼,你的意思就像'服務狀態'呢? – Sobrique

回答

0

您可以使用下面的正則表達式相匹配的最後一句話..與''(空字符串)替換它們

\w+$  // but this wont match words ending with other than [a-zA-Z0-9_] 
1
print ("\n$1") if(/(\s+\S+$)/); 

此正則表達式將打印每行的最後一個字。 \s+可以匹配空格,\S+可以匹配空格以外的任何內容。一起\s+\S+$匹配空格後跟隨任何單詞,包括行末尾的特殊字符。