52
A
回答
59
看看PHP.JS的實現PHP的preg_quote
功能,是應該做的,你需要什麼:
特殊的正則表達式字符是:. \ + * ? [^] $ () { } = ! < > | : -
9
3
的連字符( - )在方括號內時需要轉義,並且不位於開頭或結尾處 需要轉義 - 爲
[a-z0-9\-_]+
無需逃避 - 基於關大肚Ulmanen的回答爲
[a-z0-9_-]+
1
,我在C#中解決了這種形式:
private static List<string> RegexSpecialCharacters = new List<string>
{
"\\",
".",
"+",
"*",
"?",
"[",
"^",
"]",
"$",
"(",
")",
"{",
"}",
"=",
"!",
"<",
">",
"|",
":",
"-"
};
foreach (var rgxSpecialChar in RegexSpecialCharacters)
rgxPattern = input.Replace(rgxSpecialChar, "\\" + rgxSpecialChar);
注意我已經改變了'\'和'。'的位置,未能先處理斜槓會導致'\'的加倍。\'s'
0
我一直在尋找關於ESLint的reg-ex的「無用的轉義」設置的列表。並且發現其中一些提到的這些字符不需要爲JS中的正則表達式轉義。其他答案中的較長列表是PHP,它確實需要額外的字符才能被轉義。
在this github issue for ESLint大約一半的時候,用戶not-an-aardvark
解釋了爲什麼在問題中引用的字符是一個可能會被轉義的字符。
在JavaScript中,需要被轉義字符是否爲syntax character,或者這些中的一個:
^ $ \ . * + ? () [ ] { } |
到github上問題我上方連結該響應包括關於「附件B」的語義解釋(我不太瞭解),它允許上述字符中的4個被解除封鎖:) ] { }
。
另一件需要注意的是,逃避不需要轉義的角色不會造成任何傷害(除非您試圖逃避轉義角色)。所以,我個人的經驗法則是:「如果有疑問,逃脫」
相關問題
- 1. 散列之前轉義字符串?
- 2. Regex的去除指定之前的所有符號
- 3. 要轉義的所有PHP preg_replace字符的列表
- 4. 如何在序列化JSON字符串之前轉義&符號
- 5. 轉義Java中列表中的所有字符
- 6. 在渲染之前在字符串中使用轉義字符
- 7. REGEX捕獲兩個字符串之間的所有單詞
- 8. RegEx找到輔音字母之間的所有符號'y'
- 9. 用於嵌入std :: regex的轉義字符串常量
- 10. preg_replace只有在定義字符之前的子字符串
- 11. 列表中的Div應該在所有列表的頂部
- 12. 有沒有一種方法可以在字符值之前停止RegEx並在該字符之後啓動另一個RegEx?
- 13. 如果字符串應該包含';',RegEx匹配之前和特定的字符串
- 14. 在Python中轉義所有元字符
- 15. DropDown列表轉義字符
- 16. 如何在字符串中的所有換行符之前插入反斜槓?
- 17. 在調用Xdocument.save之前應該跳過的字符。
- 18. RegEx超過多個字符之前的數字
- 19. 正則表達式:如何匹配沒有轉義字符的char之前?
- 20. 什麼字符應該在sql字符串參數中轉義
- 21. REGEX在180個字符之後和之前修剪一個字符串|
- 22. 列出具有5個連續數字的列中的所有值,它可以在該序列之前或之後有其他任何字符
- 23. 應該列表<T>。刪除之前有列表<T>。存在?
- 24. CDATA是否保留XML中的所有轉義字符序列?
- 25. 在將字符串放入redis之前壓縮字符串 - 是否有意義?
- 26. 如何在vim regex中表示所有西班牙字符?
- 27. 在動態列表中轉義字符
- 28. JQuery的/ JavaScript的 - 把所有檢查內容並投入列表
- 29. 如何在使用C#的特殊字符之前放置轉義字符?
- 30. 轉義字符之間的字符串正則表達式
這個列表令人驚訝地很難找到。 – dwjohnston 2014-01-21 00:31:12