2017-02-12 184 views
-4

我是Perl新手,我有一種情況需要在兩個不同的字符串之間提取數字。如何提取兩個不同字符串之間的數字

我有這個字符串變量:

my $var = "1234 23.3\" 

我怎樣才能提取white-spacedot之間有多少?在該示例中,輸出應爲23

上面VAR串可能會發生變化,所以有時也可能是123 4.32123 334.4\其中輸出應分別4或334。

+0

'perl -E'$ var =「1234 23.3」; $ var =〜/\s+(\d+)\./;說$ 1'' –

+3

['perldoc perlretut'](http://perldoc.perl.org/perlretut.html) – melpomene

+0

你嘗試過什麼嗎? –

回答

0

白空間可使用\s反斜線序列相匹配,見perlrecharclass

\s匹配任何單個字符視爲空白

同樣地,數字可以被匹配使用\d

\d匹配考慮的單個字符是十進制數字。

要匹配一個句點或點,提防點是一個正則表達式元字符,將匹配任何字符(除換行符),見perlreperlretut,因此如果要匹配點明確,你應該逃避它。

因此,鑑於$var = "1234 23.3",下面的語句:

$var =~ /\s+(\d+)\./; 

應在空格後和點到捕獲組變量$1之前提取的數量。有關+元字符的更多信息,請參閱perlre以及有關捕獲組的信息。

相關問題