簡體   English   中英

Perl正則表達式從點分隔的整數字符串中提取數字組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM