[問題] 有沒有辦法用 Regex 檢查對話框?

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

Links booklink

Contact Us: admin [ a t ] ucptt.com