如何使用JavaScript按日期分割一个巨大的字符串?

如何使用JavaScript按日期分割一个巨大的字符串?,javascript,regex,string,Javascript,Regex,String,我把一个pdf文件变成了一个超过1000000个字符的巨大字符串。字符串中的日期格式为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(),但没有很好的效果 甚至可以通过字符串函数来实现这一点吗?或者我应该考虑另一种

我把一个pdf文件变成了一个超过1000000个字符的巨大字符串。字符串中的日期格式为
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节:2012年8月2日第2号E.R.解释。。。。。

您可以删除锚定、
g
修改器(这是多余的),并使用非捕获组来避免在结果中输出日期。如果需要拆分,请使用
(?=PATTERN HERE)
将日期保存在拆分块中。但是,如果您喜欢这种方法,请确保在开始时模式中没有可选的
0
s,否则结果中可能会有冗余元素

var s=“…第2节:2012年8月2日第2号解释E.R.2012…”;
var res=s.split(/(?:0?[1-9]|[12][0-9]|[3[01])[\/-](?:0?[1-9]|[012])[\‌/-]\d{4}/);
控制台日志(res);
res=s.split(/(?=(?:0[1-9]|[12][0-9]|[3[01])[\/-](?:0[1-9]|[1[012])[\‌/-]\d{4}/);

console.log(res);
从该正则表达式中删除
^
$
锚。当您希望字符串作为其整体的日期时,需要锚定,但当允许字符串周围有其他文本时则不需要锚定。请尝试
拆分(/(?:0?[1-9]|[12][0-9]| 3[01])[\/-](?:0?[1-9]| 1[012])[\/-]\d{4})
-移除锚定、
g
修改器并使用非捕获组。如果需要拆分,请使用
(?=PATTERN HERE)
将日期保留在拆分块中。