作者flirmnave (焰離雨星)
看板RegExp
標題[問題] 有沒有辦法用 Regex 檢查對話框?
時間Fri Nov 26 14:19:18 2021
在文字小說中,通常以 「」 中間放入人物的對話,
而有些可能是作者忽略了,有上括號(「)但沒有下括號(」)來結束對話。
要找合法的 「」 可以用:
「\S*?」
可以看 regex101 的測試:
https://regex101.com/r/ZwY1Ns/1
測試網址中,可以找到合法的對話,
例如:
「便是楊過!」、
「這一次我可猜不中了。」,上面兩個例子都有完整的「」。
目標是找到:
「郭靖謹候台駕。、
「你猜這神鵰俠是誰?郭靖道:「我猜不出。」
上述兩種只有上括號但沒有下括號的句子。
不曉得這種需求有沒有可能以 Regex 達成?
謝謝。
(我知道可以寫程式用 Stack 的方式來檢查,例如 Leetcode 20. Valid Parentheses)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.170.138.59 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/RegExp/M.1637907561.A.458.html
※ 編輯: flirmnave (1.170.138.59 臺灣), 11/26/2021 14:24:02
推 LPH66: 上兩篇我跟其他人提過檢查合法性要有支援遞迴 (?R) 的才行 11/26 15:31
→ LPH66: 有點不太確定檢查不合法括號有沒有辦法... 11/26 15:31
推 LPH66: 噢, 你的引號不會巢狀包含, 那這樣其實很簡單 11/26 15:41
→ LPH66: 查找所有上引號之後的下一個引號還是上引號就是了 11/26 15:41
→ LPH66: 我一樓說的是會巢狀包含的引號才會是那樣 11/26 15:43
→ LPH66: 實際做法大概像是 /「(?=[^「」]*「)/ 11/26 15:46
→ LPH66: 用 ?= 做 lookahead 檢查其下一個引號 (在不是引號後的字) 11/26 15:46
→ LPH66: 是否是個上引號 11/26 15:47
→ flirmnave: 了解,感謝 LPH66 說明! 11/26 19:52