1
我一直在幾個服務器中使用標準的UNIX正則表達式版本,這些服務器必須對錯誤具有很強的適應性。多年來,我發現了幾種情況,其中用戶輸入了格式錯誤的正則表達式,或者目標字符串中的某些奇怪字符導致了分段違例等,從而導致服務器崩潰。對於我們的系統來說這是不可接受的。防撞正則表達式?
在這些格式不正確的模式或匹配字符串周圍是否存在正則表達式的版本,只會導致錯誤而不會導致服務器崩潰?
因爲這些代碼主要是當這些模式正在被選中,我不希望使用多線程的setjmp longjmp的等
'格式錯誤的正則表達式' - 編譯正則表達式並檢查異常'字符串中的一些奇怪字符 - - 如何清理輸入?而且服務器如何「崩潰」?它是軟件嗎?或整個操作系統? – nhahtdh
我猜你可以期待'std :: basic_regex'和相關的非常健壯。 – Angew
@Angew:如果用戶輸入'^(x * x *)* $'作爲他的正則表達式,並且在'xxxxxxxxxxxxxxxxxxxxxxy'上放開。 –