gpt4 book ai didi

javascript - 正则表达式在循环中的第一个匹配处停止

转载 作者:行者123 更新时间:2023-11-28 19:48:39 32 4
gpt4 key购买 nike

我有一个如下所示的正则表达式和一个 while 循环来迭代数据,但是正则表达式在第一个匹配后停止,我希望它继续下去,直到找不到更多匹配。

我有全局和多行集。有人有什么想法吗?我迷茫了!

此垃圾箱 http://jsbin.com/manej/8/edit?js,console,output说明了以下代码的行为,该代码将返回上次、第一次的文件名。任何帮助将不胜感激!

var regex = new RegExp( '(\\d{2}:\\d{2}:\\d{2}).*?([0-9a-z]+\\.xml).*?(\\d{2}:\\d{2}:\\d{2})', 'gmi' ), out = [];

while ( ( match = regex.exec( data ) ) !== null ) {

out.push(match[2], match[3], match[1]);
return out;
}

var 数据是:-

时间 2014-05-22T10:39:04.890117+01:00 文件名 S140522DSS10002.xml::938c287eb522359b600f74bb3140bb64 生成时间 2014-05-22T10:38:46.000000+01:00时间 2014-05-22T10:39:04.890117+01:00 文件名 S140522DSS10001.xml::d525814afc7f9c92e7709d9a2ec46803 生成时间 2014-05-22T10:38:31.000000+01:00时间 2014-05-22T10:39:33.908891+01:00 文件名 S140522DSS10005.xml::54df47de51346319d5064ed5c380ace1 生成时间 2014-05-22T10:39:11.000000+01:00时间 2014-05-22T10:39:33.908891+01:00 文件名 S140522DSS10004.xml::a109662fad39b9a9ada2d8d5968c55ed 生成时间 2014-05-22T10:39:09.000000+01:00时间 2014-05-22T10:39:33.908891+01:00 文件名 S140522DSS10003.xml::0a15d6558032cdfdd3cab2ca4a723694 生成时间 2014-05-22T10:39:03.000000+01:00时间 2014-05-22T10:40:03.896013+01:00 文件名 R140522DSS10001.xml::ffd98e7e99625a957370f4ed03de8612 生成时间 2014-05-22T10:39:55.000000+01:00时间 2014-05-22T10:42:33.896617+01:00 文件名 S140522DDG10001.xml::d7010a49dd39731ef05e1452314a84d1 生成时间 2014-05-22T10:42:21.000000+01:00时间 2014-05-22T10:43:03.899967+01:00 文件名 S140522DDG10002.xml::7297c9e66cd418eabee94cba8a464df7 生成时间 2014-05-22T10:42:36.000000+01:00时间 2014-05-22T10:43:03.899967+01:00 文件名 S140522DDG10003.xml::e4e1071794e586bf10350dcb073d0662 生成 2014-05-22T10:42:53.000000+01:00时间2014-05-22T10:43:34.196675+01:00文件名S1405222DDG10004.XML::B520BC560E0D117520620620D782C0E9E9CE0 2014-05-22T10

最佳答案

return 语句应该位于循环之外:

var regex = new RegExp( '(\\d{2}:\\d{2}:\\d{2}).*?([0-9a-z]+\\.xml).*?(\\d{2}:\\d{2}:\\d{2})', 'gmi' ), out = [];

while ( ( match = regex.exec( data ) ) !== null ) {
out.push(match[2], match[3], match[1]);
}

return out;

关于javascript - 正则表达式在循环中的第一个匹配处停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23868032/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com