【发布时间】:2021-02-20 05:47:00
【问题描述】:
我有一个如下所示的字符串文本,只要有 新行并且以日期 dd/mm/yyyy 开头,我想拆分文本。
我在 javascript 中使用 jsonata $split() 函数。但是,我收到一个 jsonata 错误,因为以下“正则表达式匹配零长度字符串”。请帮助我如何解决这个问题。
text = "22/03/2012 intro 20/10/2019\n" +
"22/03/2012 body\n" +
"more body 22/04/2020\n" +
"22/03/2012 stuff more stuff"
$split(text , /\\r?\\n(?=(?:0[1-9]|[12][0-9]|3[01])[- \\/.](?:0[1-9]|1[012])[- \\/.](?:19|20)\\d\\d)/))
//I want the output to be [ "22/03/2012 intro 20/10/2019",
// "22/03/2012 body more body 22/04/2020",
// "22/03/2012 stuff more stuff]
// But my output now is [ "22/03/2012 intro 20/10/2019",
// "22/03/2012 body/n + more body 22/04/2020",
// "22/03/2012 stuff more stuff]
【问题讨论】:
-
您是否尝试在
\n而不是^上进行拆分,因为^也匹配字符串的开头。 See if this demo helps。我会进一步逃避模式内的/。 -
嘿@bobblebubble,感谢您的帮助,但事实证明我的输入是一个包含“\n”和“+”的大字符串,因此无法正常工作://
标签: javascript regex parsing split jsonata