2014-03-13 65 views
-4

我有以下字符串:如何使用正則表達式分割我的字符串?

abcdefgh1234.1.1.t1111-1.16.2222.1-1.t67_76.txt 

我怎樣才能將它分成使用正則表達式以下幾部分?

abcdefgh 
1234.1.1 
t1111 
1.16.2222.1-1 
t67_76.txt 
+0

嘗試http://txt2re.com/ – Leo

+0

什麼決定在哪裏拆分? – ikegami

+0

我們是否可以不在第一時間僅基於字母來分割它,例如。 [A-Z] [a-z]然後第一次出現數字[0-9]等等? – Sankasu

回答

0

在您輸入的字符串,這個工程:

^([a-z]+)(\d+(?:\.\d+){2})\.([a-z]\d+)\-(\d+(?:\.\d+){3}\-\d)\.([a-z][\d_]+.\w+)$ 

Regular expression visualization

Debuggex Demo

你想每一個元素都是在其自己的捕獲組。

+0

已更新爲僅與捕獲組1中的小寫字母匹配,並且任何小寫字母都與單個't'匹配。只要將它們改回「t」,如果它從來沒有其他的東西。 – aliteralmind

0

您還沒有指定如何分割,所以這裏有一個猜測:

my @fields = /^(\D+)([\d.]+)\.([^-]+)\-([\d.\-]+)\.(.*)\z/ or die; 
0

如果這是你要拆分的唯一字符串,或者如果每串那樣格式化(分裂似乎很隨意對我來說),這樣做:

([a-z]+)([\d\.]+)\.(\w+)-([\d\.-]+).([\w+\.]+) 

提取匹配組,然後就完成了。

$1是第一部分,$2是第二部分,依此類推。

相關問題