Perl - 用于过滤掉最后一个单词的正则表达式

时间:2015-05-18 12:48:11

标签: regex perl

我一直在使用perl脚本,我一直在尝试使用正则表达式来过滤掉系统输出中每行的最后一个字。 我使用以下命令列出所有服务,命令是:“service --status-all”命令将输出一个包含所有可用服务的列表,例如:

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

我将输出放入一个数组并在每一个新行中咀嚼:

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

我想打印出用户请求的服务,并在服务当前正在运行或停止时通知用户。

我想知道如何使用正则表达式过滤每行的最后一个单词,我找不到任何解决方案来解决我的问题,而不是在stackoverflow上。 任何帮助或输入将非常感激。

2 个答案:

答案 0 :(得分:1)

print ("\n$1") if(/(\s+\S+$)/);

这个正则表达式将打印每行的最后一个单词。 \s+匹配空格,\S+匹配除空格之外的任何内容。同时\s+\S+$匹配空格,后跟任何单词,包括行尾的特殊字符。

答案 1 :(得分:0)

您可以使用以下正则表达式匹配最后的单词..并将其替换为''(空字符串)

\w+$     // but this wont match words ending with other than [a-zA-Z0-9_]
相关问题