用戶將提供字符串,我想通過預定義字符串列表搜索該字符串。訣竅是,用戶的字符串可以是任何東西,包括正則表達式的字符,如[*?^等,所以像與任意(用戶提供的)字符串匹配的正則表達式
"first half of my regex" + `USER_STRING` + "second half of my regex"
將無法正常工作。一個顯而易見的解決方案是用逃脫的對手逃脫USER_STRING
中的所有特殊字符,但有一個更好的方法。
PS:另外,一個簡單的字符串搜索將不會執行,因爲我需要匹配字符串的左側和右側的模式。
除了使用戶字符串正則表達式安全外,還有更好的方法嗎? – 2013-02-21 14:05:48
你可以做兩件事嗎?首先匹配你的正則表達式,然後通過匹配進行字符串搜索。 – freejosh 2013-02-21 14:07:48
@TimPietzcker:不過,我不知道爲什麼這些答案會轉義爲「-'。當'[]'被轉義時,沒有必要這樣做。 – nhahtdh 2013-02-21 14:54:55