在表達(dá)式中有特殊意義,需要添加 "" 才能匹配該字符本身的字符匯總,特別注意:""字符本身在正則表示里需要用"\\"表示
正則表達(dá)式中的特殊字符,就是一些有特殊含義的字符,如“*.txt”中的 *,簡單的說就是表示任何字符串的意思 如果要查找文件名中有*的文件,則需要對*進(jìn)行轉(zhuǎn)義,即在其前加一個(gè)\。ls *.txt。正則表達(dá)式有以下特殊字符。需要轉(zhuǎn)義
* . ? + $ ^ [ ] ( ) { } | \ /
c#方法
/// <summary>
/// 模糊查詢轉(zhuǎn)換特殊字符:正則表達(dá)式有以下特殊字符。需要轉(zhuǎn)義 * . ? + $ ^ [ ] ( ) { } | \ /
/// 如:{"phone":/U9G\/XoDNo8ozbwbxal\+Qzg==/}
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string ChangeSpecialCharacter(string str)
{
if (string.IsNullOrEmpty(str))
return str;
StringBuilder retValue = new StringBuilder();
string str1 = "*.?+$^[](){}|\\/";
for (int i = 0; i < str.Length; i++)
{
string ss = str[i].ToString();
if (str1.Contains(ss))
{
ss = "\\" + ss;
}
retValue.Append(ss);
}
return retValue.ToString();
}
字符 | 說明 | input | regex1 | regex2 |
^ | 匹配輸入字符串的開始位置。要匹配 "^" 字符本身,請使用 "\^" | "^" | \\^ | [^] |
$ | 匹配輸入字符串的結(jié)尾位置。要匹配 "$" 字符本身,請使用 "\$" | "$" | \\$ | [$] |
. | 匹配除了換行符(\n)以外的任意一個(gè)字符。要匹配小數(shù)點(diǎn)本身,請使用 "\." | "." | \\. | [.] |
[ ] | 用來自定義能夠匹配 '多種字符' 的表達(dá)式。要匹配中括號,請使用 "\[" 和 "\]" | "[" | \\[ | [\\[] |
* | 修飾匹配次數(shù)為 0 次或任意次。要匹配 "*" 字符本身,請使用 "\*" | "*" | \\* | [*] |
\ | 將下一個(gè)字符標(biāo)記為或特殊字符、或原義字符、或向后引用、或八進(jìn)制轉(zhuǎn)義符。 | "\\" | \\\\ |
|
? | 修飾匹配次數(shù)為 0 次或 1 次。要匹配 "?" 字符本身,請使用 "\?" | "?" | \\? | [?] |
+ | 修飾匹配次數(shù)為至少 1次。要匹配 "+" 字符本身,請使用 "\+" | "+" | \\+ | [+] |
{ } | 修飾匹配次數(shù)的符號。要匹配大括號,請使用 "\{" 和 "\}" | "{" | \\{ | [{] |
| | 左右兩邊表達(dá)式之間 "或" 關(guān)系。匹配 "|" 本身,請使用 "\|" | "|" | \\| | [|] |
( ) | 標(biāo)記一個(gè)子表達(dá)式的開始和結(jié)束位置。要匹配小括號,請使用 "\(" 和 "\)" | "(" | \\( | [(] |
該文章在 2024/3/30 23:30:35 編輯過