perl實現動態分組匹配

2021-08-14 17:05:52 字數 636 閱讀 7669

有乙個比較常見的情景,比如excel裡,一行的列數目是動態的。怎麼獲取這些動態的每一列資料呢?

簡單例子,

my $str=」5.4..032…..33442.442….23..2323..2323..3434..3434..」;

中間有任意個點分隔,但是不知道會有多少個匹配的數字。怎麼用perl實現,並列印出每乙個匹配的數字?

#!/usr/local/bin/perl

use strict;

use warnings;

my$str="5.4..032.....33442.442....23..2323..2323..3434..3434..";

while($str =~ /(\d+)\.+/)

執行後,結果如下顯示:

➜  project git:(master) ✗ ./perl-fenzu

-dontkonw

-times

.pl5

4032

33442

44223

2323

2323

3434

3434

➜ project git:(master) ✗

perl 模式匹配

一 簡介 模式指在字串中尋找的特定序列的字元,由反斜線包含 def 即模式def。其用法如結合函式split將字串用某模式分成多個單詞 array split line 二 匹配操作符 檢驗匹配是否成功 result var abc 若在該字串中找到了該模式,則返回非零值,即true,不匹配則返回0...

perl正則匹配

字元的種類是一定的,無非是空格,數字,大小寫字母,和perl中定義的元字元,還有本國語言。所以原則上任何格式的字元都能匹配。匹配工具 選擇符號,關鍵字,量詞,斷言,轉義字元 當出現多個字元組成的 非空格字元時候,例如123,45 3 s sdgg 則使用 0 9a za z 若加上 則只能匹配一行中...

perl智慧型匹配

1.perl中 為智慧型匹配,它可以智慧型地根據符號兩側的運算元來確定操作。如要判斷某個元素是否存在於陣列中,不使用智慧型匹配,程式像這樣 my x 2 my array 1,2,3 my flag 0 for array if flag 1 else 使用智慧型匹配,程式像這樣 my x 2 my...