匹配嵌入在perl中的行中的数字

时间:2017-10-23 16:17:37

标签: regex perl

我正在尝试在perl中编写一个与此行匹配的正则表达式

<sqlpurchSBC comn 23 8313364.B9230352.329 11200.00 SOLD>

到目前为止我的表达是这样的,但它似乎与我的字符串匹配

m|sqlpurchSBC.*(\d+).(\d+).*(\d+).(\d+).(\d+) SOLD|

我基本上试图提取值23以及值11200.00。虽然两位小数不算数。我需要帮助的人。感谢

2 个答案:

答案 0 :(得分:3)

我认为拨打use strict; use warnings 'all'; use feature 'say'; my $s = '<sqlpurchSBC comn 23 8313364.B9230352.329 11200.00 SOLD>'; my @pair; @pair = ( split ' ', $s )[2,4] if $s =~ /<sqlpurchSBC.+SOLD>/; say "@pair"; 会更好

23 11200.00

输出

{{1}}

答案 1 :(得分:1)

试试这个:

m|<sqlpurchSBC.*?(\d+)\s+[\.\w]+\s+(\d+)\.?.*|
                |
          tell .* to be non greedy