我有一个长字符串,其中包含有关多页图像文件的文本信息。 这是一个例子:
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]
开头的字符串部分分开,包括每次都可以更改的左侧名称。
或者有更好的方法可以做到这一点?
答案 0 :(得分:4)
var array = string.split(/ (?=test\.tif\[\d+\])/);
这使用前瞻分割在test.tif[<number>]
后面的每个空格上。
要处理不同的扩展程序,您可以将正则表达式的tif
部分更改为[a-zA-Z]+
,以允许(?:tif|gif|png)
之类的任何内容仅允许特定扩展名。