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