Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 帮助使用perl正则表达式解析值_Regex_Perl - Fatal编程技术网

Regex 帮助使用perl正则表达式解析值

Regex 帮助使用perl正则表达式解析值,regex,perl,Regex,Perl,我一直在试图找出perl正则表达式来提取以下值:(home/mail/dump dirs总是相同的)。谢谢 abc 123456 这是输出: drwxr-xr-x - mail_hd mail_users 0 2011-03-26 20:12 /home/mail/dump/abc drwxr-xr-x - mail_hd mail_users 0 2011-04-15 09:10 /home/mail/dump/123456 可能使用and代替。可

我一直在试图找出perl正则表达式来提取以下值:(home/mail/dump dirs总是相同的)。谢谢

abc

123456

这是输出:

drwxr-xr-x   - mail_hd mail_users          0 2011-03-26 20:12 /home/mail/dump/abc
drwxr-xr-x   - mail_hd mail_users          0 2011-04-15 09:10 /home/mail/dump/123456

可能使用and代替。

可能使用and代替。

可能这是有用的,应该返回您需要的

if ($subject =~ m!/home/mail/dump/(.*)$!) {
    $result = $1;
} else {
    $result = "";
}

它匹配了
/home/mail/dump/
之后的所有内容,直到行尾

也许这是有用的,应该返回您需要的内容

if ($subject =~ m!/home/mail/dump/(.*)$!) {
    $result = $1;
} else {
    $result = "";
}
它匹配
/home/mail/dump/
之后的所有内容,直到行尾

这类似于

在“/”上拆分并获取最后一项

awk -F"/" '{print $NF}' file
Ruby(1.9+)(与Perl类似)

这类似于

在“/”上拆分并获取最后一项

awk -F"/" '{print $NF}' file
Ruby(1.9+)(与Perl类似)


下面的perl正则表达式将只给出最后一个正斜杠后面的字符

s=.*/==
例如:

$ echo 'wxr-xr-x   - mail_hd mail_users          0 2011-03-16 18:46 /home/mail/dump/abc' | perl -pe 's=.*/=='
abc

下面的perl正则表达式将只给出最后一个正斜杠后面的字符

s=.*/==
例如:

$ echo 'wxr-xr-x   - mail_hd mail_users          0 2011-03-16 18:46 /home/mail/dump/abc' | perl -pe 's=.*/=='
abc

由于OP要求使用Perl,
Perl-F/-lane'print$F[-1]'文件
@ikegami。你们应该提供一个答案。谢谢你们,这些都是很好的答案。看到其他版本很酷。我将使用这些。由于OP要求使用Perl,
Perl-F/-lane'print$F[-1]'文件
@ikegami。你们应该提供一个答案。谢谢你们,这些都是很好的答案。看到其他版本很酷。我将使用这些工具。
使用File::Basename qw(Basename);basename((拆分(“”,$,8))[-1])
使用文件::basename qw(basename);basename((拆分(“”,$,8))[-1])