将字符串转换为带有正则表达式的javascript数组

时间:2014-03-13 17:44:24

标签: javascript regex

我有一个长字符串,其中包含有关多页图像文件的文本信息。 这是一个例子:

test.tif[0] TIFF 1962x2668+0+0 DirectClass 1-bit 12.8M 0.000u test.tif[1] TIFF 
1952x2688+0+0 DirectClass 1-bit 12.8M 0.000u test.tif[2] TIFF 1650x2200+0+0 
DirectClass 1-bit 12.8M 0.000u 0:01 etc..

我需要将字符串转换为图像信息数组,如下所示:

[
    'test.tif[0] TIFF 1962x2668+0+0 DirectClass 1-bit 12.8M 0.000u',
    'test.tif[1] TIFF 1952x2688+0+0 DirectClass 1-bit 12.8M 0.000u',
    'test.tif[2] TIFF 1650x2200+0+0 DirectClass 1-bit 12.8M 0.000u 0:01',
    etc..
]

可能使用某种正则表达式,可以将以[x]开头的字符串部分分开,包括每次都可以更改的左侧名称。 或者有更好的方法可以做到这一点?

1 个答案:

答案 0 :(得分:4)

var array = string.split(/ (?=test\.tif\[\d+\])/);

这使用前瞻分割在test.tif[<number>]后面的每个空格上。

要处理不同的扩展程序,您可以将正则表达式的tif部分更改为[a-zA-Z]+,以允许(?:tif|gif|png)之类的任何内容仅允许特定扩展名。