-4
我是Perl新手,我有一種情況需要在兩個不同的字符串之間提取數字。如何提取兩個不同字符串之間的數字
我有這個字符串變量:
my $var = "1234 23.3\"
我怎樣才能提取white-space
和dot
之間有多少?在該示例中,輸出應爲23
上面VAR串可能會發生變化,所以有時也可能是123 4.32
或123 334.4\
其中輸出應分別4或334。
我是Perl新手,我有一種情況需要在兩個不同的字符串之間提取數字。如何提取兩個不同字符串之間的數字
我有這個字符串變量:
my $var = "1234 23.3\"
我怎樣才能提取white-space
和dot
之間有多少?在該示例中,輸出應爲23
上面VAR串可能會發生變化,所以有時也可能是123 4.32
或123 334.4\
其中輸出應分別4或334。
白空間可使用\s
反斜線序列相匹配,見perlrecharclass
:
\s
匹配任何單個字符視爲空白
同樣地,數字可以被匹配使用\d
:
\d
匹配考慮的單個字符是十進制數字。
要匹配一個句點或點,提防點是一個正則表達式元字符,將匹配任何字符(除換行符),見perlre
和perlretut
,因此如果要匹配點明確,你應該逃避它。
因此,鑑於$var = "1234 23.3"
,下面的語句:
$var =~ /\s+(\d+)\./;
應在空格後和點到捕獲組變量$1
之前提取的數量。有關+
元字符的更多信息,請參閱perlre
以及有關捕獲組的信息。
'perl -E'$ var =「1234 23.3」; $ var =〜/\s+(\d+)\./;說$ 1'' –
['perldoc perlretut'](http://perldoc.perl.org/perlretut.html) – melpomene
你嘗試過什麼嗎? –