0
有時候我想將用戶輸入轉換爲正則表達式中的字面值。即如果用戶輸入C:\Win\Bin\File.txt
,則正則表達式應該類似C:\\Win\\Bin\File.txt
,因爲某些字符組合必須轉義。有沒有人知道這是否有經過驗證的真實代碼,或者是否有其他技術會自動執行此操作?將用戶輸入轉換爲文字正則表達式的代碼? (C#)
有時候我想將用戶輸入轉換爲正則表達式中的字面值。即如果用戶輸入C:\Win\Bin\File.txt
,則正則表達式應該類似C:\\Win\\Bin\File.txt
,因爲某些字符組合必須轉義。有沒有人知道這是否有經過驗證的真實代碼,或者是否有其他技術會自動執行此操作?將用戶輸入轉換爲文字正則表達式的代碼? (C#)
你試過Regex.Escape()嗎?
E.g.
var userInputRegex = new Regex(Regex.Escape(userInput));
「C:\ Win \ Bin \ File.txt」和「C:\ Win \ Bin \ File.txt」在你的例子中有什麼區別? – 2009-04-10 07:06:49
將符號字符轉換爲文字字符稱爲「轉義」。你需要的是「逃避」用戶輸入,以便它不能包含任何象反斜槓這樣的符號字符。根據您的技術環境,確實有內置的方法來實現這一點。 – bzlm 2009-04-10 07:18:45