看板 RegExp 關於我們 聯絡資訊
※ 引述《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) --
eggimage:我之前也發生過很多次 yahoo本來就很爛 還外加奇摩12/10 18:52
madeinchina:之前即時通死都不讓我登入 後來我就改用MSN了...12/10 18:53
eggimage:發現MSN也不給你登....12/10 18:53
madeinchina: 就改登PTT了12/10 18:55
eggimage:最近ptt也一直斷....12/10 18:57
freely10469: 只好掀桌出去裸奔了...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
mars90226: 這個感覺不錯,不過如果要抓年月日的資料呢? 08/01 22:49
mars90226: 好像只能用程式判斷最後拿到的資料是年還是日 08/01 22:49
ggirls: 真的很高興有人可以教我如何思考。 08/02 09:38
ggirls: 試著改寫中。目前卡在我把三個"?:"拿掉,會得到錯誤結果。 08/02 09:40
ggirls: 我的觀念裡,non-capturing group對結果不會引響,只是 08/02 09:41
ggirls: 顯性或隱性分組的分別嗎? 08/02 09:42
ggirls: 好像我的觀念是錯的。我用Python3.4。 08/02 09:42
ggirls: 拿掉non-capturing我這邊的結果是: 08/02 09:52
ggirls: [('', '1月 1日', ' 1日'), (' 2年', ' 2月 2 日', ' 2 08/02 09:55
ggirls: 日'), (' 3年', '3月', ''), ('', '', ''), (' 5年', '5 08/02 09:55
ggirls: 月', ''), ('', '', ''), ('', '', '')] 08/02 09:55