【发布时间】:2014-06-22 01:26:59
【问题描述】:
我的问题是:为什么我的正则表达式模式只捕获最后一对?它应该捕获每场比赛中的所有对。
我这里有这个字符串:
[Profile0]
Name=Main
IsRelative=1
Path=Profiles/vr10qb8s.default
Default=1
[Profile1]
Name=Clean
IsRelative=1
Path=Profiles/k46wtieb.clean
我在上面运行这个脚本:
var patt = /\[(.*?)\](?:\s+?(.+?)=(.+))+/g;
var blocks = [];
var match;
while (match = patt.exec(readStr)) {
alert(match)
}
此脚本的输出是两个警报:
警报 1:
Array [ "[Profile0]
Name=Main
IsRelative=1
Path=Profiles/vr10qb8s.default
Default=1", "Profile0", "Default", "1" ]
警报 2:
Array [ "[Profile1]
Name=Clean
IsRelative=1
Path=Profiles/k46wtieb.clean", "Profile1", "Path", "Profiles/k46wtieb.clean" ]
我的问题是,为什么它只捕获每组中的最后一对。
我希望看到的是这样的:
alert 1 应该是(注意 "Name", "Main", "IsRelative", "1", "Path", "Profiles/vr10qb8s.default",)
Array [ "[Profile0]
Name=Main
IsRelative=1
Path=Profiles/vr10qb8s.default
Default=1", "Profile0", "Name", "Main", "IsRelative", "1", "Path", "Profiles/vr10qb8s.default", "Default", "1" ]
警报 2 应该是(注意 "Name", "Clean", "IsRelative", "1",)
Array [ "[Profile1]
Name=Clean
IsRelative=1
Path=Profiles/k46wtieb.clean", "Profile1", "Name", "Clean", "IsRelative", "1", "Path", "Profiles/k46wtieb.clean" ]
【问题讨论】:
标签: javascript regex