perl正则表达式 15
请教写一个正则表达式。要匹配如下的数据省农机所-2-RNC20988GSM小区2053320487_4812-RNC20487GSM小区4812健康大厦(W)-1-邻小区...
请教写一个正则表达式。要匹配如下的数据
省农机所-2-RNC20988 GSM 小区20533
20487_4812 - RNC20487 GSM 小区4812
健康大厦(W)-1-邻小区 30
我写的正则表达式是 .*\d+
这个我用工具测过了能够匹配这些数据。
但是我的目的是取这些数据最后面的数字。比如20533,4812,30
我写的perl语句是sub getgsmci(){
local ($sr,*data)=@_;
my $h=$data[0];
my $n;
my $ci;
if($h=~/.*(\d+)/)
{
$ci = $1;
}
return($h,$ci);
}
最后取到的值确实3,2,0,都是一位数字。所以请高手帮忙解决一下。谢谢。
建议看资料。上网搜搜的靠边站。本人急需解决该问题。
瞎说的赶紧闭嘴。
我提问的问题最终目的是如何取到后面的值,我写的perl语句只能取到最后面的一位数字。
我要的是最后面的所有数字,比如20533,4812,30,请结合我给出的数据
我的正则表达式匹配有点问题。之所以值取到最后的一位数字是因为.*把最后一位数字前面的数据都匹配了。所以只能取到最后一位数字。
请高手帮忙
还是不指望你们了。求人不如求自己。我也不知道你们是否验证过你们的那些是否正确。我自己搞好了。还是谢谢各位。公布下答案吧
($h=~/^.*\s+\W*(\d+)/) 展开
省农机所-2-RNC20988 GSM 小区20533
20487_4812 - RNC20487 GSM 小区4812
健康大厦(W)-1-邻小区 30
我写的正则表达式是 .*\d+
这个我用工具测过了能够匹配这些数据。
但是我的目的是取这些数据最后面的数字。比如20533,4812,30
我写的perl语句是sub getgsmci(){
local ($sr,*data)=@_;
my $h=$data[0];
my $n;
my $ci;
if($h=~/.*(\d+)/)
{
$ci = $1;
}
return($h,$ci);
}
最后取到的值确实3,2,0,都是一位数字。所以请高手帮忙解决一下。谢谢。
建议看资料。上网搜搜的靠边站。本人急需解决该问题。
瞎说的赶紧闭嘴。
我提问的问题最终目的是如何取到后面的值,我写的perl语句只能取到最后面的一位数字。
我要的是最后面的所有数字,比如20533,4812,30,请结合我给出的数据
我的正则表达式匹配有点问题。之所以值取到最后的一位数字是因为.*把最后一位数字前面的数据都匹配了。所以只能取到最后一位数字。
请高手帮忙
还是不指望你们了。求人不如求自己。我也不知道你们是否验证过你们的那些是否正确。我自己搞好了。还是谢谢各位。公布下答案吧
($h=~/^.*\s+\W*(\d+)/) 展开
展开全部
我说吓正则吧
用\d+$就ok了
\d+$是匹配字符串末尾的数字
用\d+$就ok了
\d+$是匹配字符串末尾的数字
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不明白你为什么不直接使用\d+呢,你前面的.*是贪婪的呀,不是很清楚你的需求,可能你也会认为是瞎说,耽误你的时间了,不好意思。
if($h=~/.*(\d+)/)
换为
if($h=~/(\d+)/)
if($h=~/.*(\d+)/)
换为
if($h=~/(\d+)/)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if($h=~/(\d+)$/) {
$ci = $1;
}
$ci = $1;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询