看板 RegExp 關於我們 聯絡資訊
在文字小說中,通常以 「」 中間放入人物的對話, 而有些可能是作者忽略了,有上括號(「)但沒有下括號(」)來結束對話。 要找合法的 「」 可以用: 「\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