2014-01-17 102 views
-2

我有一个列表(从数组值),其看起来像这样返回后字符串:只有图案/关键词

order_reply1={order_tag=1286955 
order_reply2={order_tag=1286956 
order_reply3={order_tag=1286957 
order_reply4={order_tag=1286958 
order_reply5={order_tag=1286959 
order_reply6={order_tag=1286960 
order_reply7={order_tag=1286961 

由此,我想返回后order_tag =的值。我怎么能这样做呢?在这个“关键字”之前,我不需要任何东西。原因是我希望返回的标签保持与这些引用查询数据库。

+3

有几种在Perl中完成这些的方法,你已经尝试了哪些代码?你卡在哪里? –

回答

0
#!/usr/bin/perl 
use strict; 
use warnings; 

my @list = (
'order_reply1={order_tag=1286955', 
'order_reply2={order_tag=1286956', 
'order_reply3={order_tag=1286957', 
'order_reply4={order_tag=1286958', 
'order_reply5={order_tag=1286959', 
'order_reply6={order_tag=1286960', 
'order_reply7={order_tag=1286961', 
); 

s/.*order_tag=// for @list; 
# @list now contains only the tag values 
print join("\n",@list); 
0
sed 's/.*order_tag=//' YourFile 
# -> 1286961 

sed 's/.*\(order_tag=\)/\1/' YourFile 
# -> order_tag=1286961 
+0

谢谢这就是我需要的! – user3206886

0

grep的是正确的工具:

kent$ grep -Po '.*order_tag=\K.*' f 
1286955 
1286956 
1286957 
1286958 
1286959 
1286960 
1286961 
0

在路上出了门,但是,在这里与在=性格分裂的另一种方式:

perl -e '$o=q(order_reply1={order_tag=1286955); $n=(split /=/, $o)[-1]; print "o= $o\n"'