Re: [問題] [年月日...] 的 regular expression
看板RegExp (正規表示式 Regular Expression)作者s25g5d4 (function(){})()時間8年前 (2016/08/01 20:15)推噓2(2推 0噓 9→)留言11則, 2人參與討論串2/2 (看更多)
※ 引述《ggirls》之銘言:
: 有時可以沒有年,有時可以沒有日,但若是「年-日」
: 就應拆分成兩個日期。
也就是
年月日
年月
月日
年
月
日
對吧
先分析一下 月 出現最多次
所以以月為主 pattern 而沒有月的當例外處理
可以寫成 (?:\s*\d+\s*年)?(?:\s*\d+\s*月(?:\s*\d+\s*日)?)
例外的兩個規則分別是 年 與 日
所以寫成 \s*\d+\s*[年日]
最後用 | 連起來
(?:\s*\d+\s*年)?(?:\s*\d+\s*月(?:\s*\d+\s*日)?)|\s*\d+\s*[年日]
我的執行結果:
> '1月 1日 2年 2月 2 日 3年3月 4年 5年5月 6年 7日'
.match(/(?:[0-9 ]+年)?(?:[0-9 ]+月(?:[0-9 ]+日)?)|[0-9 ]+[年日]/g)
[ '1月 1日', ' 2年 2月 2 日', ' 3年3月', ' 4年', ' 5年5月', ' 6年', ' 7日' ]
語言為 JavaScript (Node.js v6.2.1)
--
→
12/10 18:52,
12/10 18:52
推
12/10 18:53,
12/10 18:53
→
12/10 18:53,
12/10 18:53
推
12/10 18:55,
12/10 18:55
→
12/10 18:57,
12/10 18:57
→
12/10 19:57,
12/10 19:57
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.117.198.141
※ 文章網址: https://www.ptt.cc/bbs/RegExp/M.1470053740.A.CE5.html
※ 編輯: s25g5d4 (140.117.198.141), 08/01/2016 20:18:37
→
08/01 22:49, , 1F
08/01 22:49, 1F
→
08/01 22:49, , 2F
08/01 22:49, 2F
→
08/02 09:38, , 3F
08/02 09:38, 3F
→
08/02 09:40, , 4F
08/02 09:40, 4F
→
08/02 09:41, , 5F
08/02 09:41, 5F
→
08/02 09:42, , 6F
08/02 09:42, 6F
→
08/02 09:42, , 7F
08/02 09:42, 7F
推
08/02 09:52, , 8F
08/02 09:52, 8F
推
08/02 09:55, , 9F
08/02 09:55, 9F
→
08/02 09:55, , 10F
08/02 09:55, 10F
→
08/02 09:55, , 11F
08/02 09:55, 11F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
RegExp 近期熱門文章
PTT數位生活區 即時熱門文章