我有一个 pdf 文件变成了超过 1,000,000 个字符的巨大字符串。字符串中的日期格式为 dd/mm/yyyy
。我想按日期将字符串拆分为较小的字符串。我尝试了以下方法:
var sectioned = hugeString.split(/^(0?[1-9]|[12][0-9]|3[01])[\/](0?[1-9]|1[012])[\/\-]\d{4}$/g);
但是它不起作用。我也尝试了 hugeString.match()
,但没有好的结果。
是否可以通过字符串函数来完成此任务,或者我应该考虑不同的方法?
字符串片段:
....部分:2 解释 E.R. 2 of 2012 02/08/2012 .....
最佳答案
您可以删除 anchor 、g
修饰符(这是多余的)并使用非捕获组来避免在结果中输出日期。如果您需要拆分,将日期保留在拆分块中,请包裹在 (?=PATTERN HERE)
中。但是,如果您更喜欢这种方法,请确保模式开头没有可选的 0
,否则结果中可能会出现冗余元素。
var s = "....Section: 2 Interpretation E.R. 2 of 2012 02/08/2012 ..... ";
var res = s.split(/(?:0?[1-9]|[12][0-9]|3[01])[\/-](?:0?[1-9]|1[012])[\/-]\d{4}/);
console.log(res);
res = s.split(/(?=(?:0[1-9]|[12][0-9]|3[01])[\/-](?:0[1-9]|1[012])[\/-]\d{4})/);
console.log(res);
请注意,您还有一个 [\/]
子模式,而模式中没有 -
,而另一个分隔符字符类包含这两个字符。我建议在这两种情况下都使用 [\/-]
。
关于javascript - 如何使用 JavaScript 按日期分割一个巨大的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40507682/