你知道结合这两个正则表达式的方法吗?
或者以任何其他方式获取最后一个$3==b
之前的最后6位数字。
我想要的最终结果是\
来自字符串:
100144
以下是我尝试过的一些事情
\\XXX\Extract_ReduceSize\MonitoringExport\dev\files\100144\
删除导致
的字符串的尾随(.{1})$
\
\\XXX\Extract_ReduceSize\MonitoringExport\dev\files\100144
删除导致.*\\
\
之前的所有内容
我使用的软件只需要一行。所以我可以进行2次通话。
答案 0 :(得分:1)
既然你想要最后一个,那么([^\\]*)\\$
会合适吗?这与最后一个斜杠之前尽可能多的非斜杠字符匹配。或者,如果您不想提取第一个组,则可以使用([^\\]+)(?=\\$)
进行预测。
答案 1 :(得分:1)
此代码显示了两种不同的解决方案。希望它有所帮助:
use strict;
use warnings;
my $example = '\\XXX\Extract_ReduceSize\MonitoringExport\dev\files\100144\\';
# Method 1: split the string by the \ character. This gives us an array,
# and then, select the last element of that array [-1]
my $number = (split /\\/, $example)[-1];
print $number, "\n"; # <-- prints: 100144
# Method 2: use a regexpr. Search in reverse mode ($),
# and catch the number part (\d+) in $1
if( $example =~ m!(\d+)\\$! ) {
print $1, "\n"; # <-- prints: 100144
}
答案 2 :(得分:1)
这可以提取最后一段数字:
(\d+)(?=\\$)