[英]Perl regex to extract groups of digits from string of dot-separated integers
首先,我正在使用Perl 5.14.1。
我一直在拉我的頭發在以下問題(注:我絕對吮吸什么用正則表達式做)。 我正在尋找一個正則表達式,僅從字符串中提取數字,例如:
E4.1
E6
e16
e6.7.3
E42.9
基本上,總是有一個e(大寫或小寫),后跟至少一組數字。 如果有多個數字組,它們之間用點分隔。 我要做的是將所有數字組提取到一個數組中。 例如:
E4.1 -> ( 4, 1 )
E65 -> ( 65 )
e5.8.3 -> ( 5, 8, 3 )
括號中的內容應該是我從字符串中提取的數字數組。
到目前為止,我得到的是
my @groupsOfNumbers = ( $inputString =~ /(\d+)((\.)\d+)*/g );
我在這里的理由是,總是至少有一組數字(因此第一個(\\ d +) ),然后是任意數量的點后跟數字分組(因此, (((。)\\ d +)*部分) 。 不幸的是,這似乎不起作用。 例如,如果我將該正則表達式應用於此輸入:
E4.3.1
結果是:
(“ 4”,“。1”,“。”)
請幫忙!
您不必擔心點匹配,因為您只需要數字,
my @groupsOfNumbers = $inputString =~ /(\d+)/g;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.