亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

$split() (jsonata) 函數中的正則表達式給出“正則表達式匹配零長度字符串”為什么?

$split() (jsonata) 函數中的正則表達式給出“正則表達式匹配零長度字符串”為什么?

湖上湖 2023-07-14 15:35:22
我有一個如下所示的字符串文本,我想在出現新行并以日期 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]          
查看完整描述

2 回答

?
至尊寶的傳說

TA貢獻1789條經驗 獲得超10個贊

使用

$split($replace(text,?/(\r?\n)\s*\+\s*(?=\d{2}[-?\/.]\d{2}[-?\/.]\d{4})|\r?\n\s*\+\s*/g,?'$1'),?/\r?\n/)

第一個$replace刪除加號和換行符,并在必要時替換為行結尾。

一種$split是用回車+換行或僅換行來分割。


查看完整回答
反對 回復 2023-07-14
?
慕娘9325324

TA貢獻1783條經驗 獲得超4個贊

const str = "22/03/2012 intro\n" +

"22/03/2012 body\n" +

"more body\n" +

"22/03/2012 stuff\n" +

"more stuff\n";


console.log(str.match(/^[0-9][0-9][- /.][0-9][0-9][- /.][0-9][0-9][0-9][0-9][a-zA-Z\s]+(?:[a-zA-Z\s]+)/gm));

// Will log ["22/03/2012 intro\n","22/03/2012 body\nmore body\n", "22/03/2012 stuff\nmore stuff\n"]


查看完整回答
反對 回復 2023-07-14
  • 2 回答
  • 0 關注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號