將 Regex 表達式的一部分視為非特殊字符

將 Regex 表達式的一部分視為非特殊字符

假設我有一個正則表達式,它使用了一些特殊字符,但也有一部分包含“正常”文本,其中恰好有一些符號。 '普通文字'部分中的特殊字元。

如何將「正常」文字位元括起來,以便正規表示式在認為遇到特殊字元時(實際上沒有遇到特殊字元)不會開始出現異常?

舉個例子,假設我搜尋文本:

.*Hello it's true that ([6*.5]^2=9)

我當然不想每次在數學部分出現任何特殊字元(或“不”中的撇號)時都費力地使用轉義字元。另一方面,我確實想將.*開頭的位元視為特殊字元。

那麼我可以將該Hello it's true that ([6*.5]^2=9)部分括起來,以便 Regex 將其視為普通文本而不是特殊文本嗎?

我正在使用 Notepad++ 進行查找和替換,但希望無論程式是什麼,任何答案都是相同的。

答案1

有些工具可讓您更改預設是否必須轉義特殊字元。例如,vi(和克隆)有一個magic控制它的模式。這可以讓您減少所需的轉義量。

答案2

嘗試\Q以文字開頭,以 結尾\E

這適用於許多風格的正規表示式,儘管 Java 可能有問題。

訊息來自:http://www.regular-expressions.info/characters.html

相關內容