我有以下字符串:
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 :(得分:0)
在您的输入字符串上,这有效:
^([a-z]+)(\d+(?:\.\d+){2})\.([a-z]\d+)\-(\d+(?:\.\d+){3}\-\d)\.([a-z][\d_]+.\w+)$
您想要的每个元素都在其自己的捕获组中。
答案 1 :(得分:0)
你还没有指定如何分割,所以这是一个猜测:
my @fields = /^(\D+)([\d.]+)\.([^-]+)\-([\d.\-]+)\.(.*)\z/ or die;
答案 2 :(得分:0)
如果那是你要分割的唯一字符串,或者每个字符串都是以这种方式格式化的(分裂对我来说似乎很随意),这样做:
([a-z]+)([\d\.]+)\.(\w+)-([\d\.-]+).([\w+\.]+)
提取匹配的群组,您已完成。
$1
是第一部分,$2
是第二部分,依此类推。