C#正则表达式特殊字符及其处理
				
									
					
					
						|  | 
							admin 2024年3月30日 23:30
								本文热度 2032 | 
					
				 
				在表达式中有特殊意义,需要添加 "" 才能匹配该字符本身的字符汇总,特别注意:""字符本身在正则表示里需要用"\\"表示
正则表达式中的特殊字符,就是一些有特殊含义的字符,如“*.txt”中的 *,简单的说就是表示任何字符串的意思 如果要查找文件名中有*的文件,则需要对*进行转义,即在其前加一个\。ls *.txt。正则表达式有以下特殊字符。需要转义
* . ? + $ ^ [ ] ( ) { } | \ /
c#方法
   /// <summary>
        /// 模糊查询转换特殊字符:正则表达式有以下特殊字符。需要转义  * . ? + $ ^ [ ] ( ) { } | \ /
        /// 如:{"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 | 
| ^ | 匹配输入字符串的开始位置。要匹配 "^" 字符本身,请使用 "\^" | "^" | \\^ | [^] | 
| $ | 匹配输入字符串的结尾位置。要匹配 "$" 字符本身,请使用 "\$" | "$" | \\$ | [$] | 
| . | 匹配除了换行符(\n)以外的任意一个字符。要匹配小数点本身,请使用 "\." | "." | \\. | [.] | 
| [ ] | 用来自定义能够匹配 '多种字符' 的表达式。要匹配中括号,请使用 "\[" 和 "\]" | "[" | \\[ | [\\[] | 
| * | 修饰匹配次数为 0 次或任意次。要匹配 "*" 字符本身,请使用 "\*" | "*" | \\* | [*] | 
| \ | 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。 | "\\" | \\\\ | 
 | 
| ? | 修饰匹配次数为 0 次或 1 次。要匹配 "?" 字符本身,请使用 "\?" | "?" | \\? | [?] | 
| + | 修饰匹配次数为至少 1次。要匹配 "+" 字符本身,请使用 "\+" | "+" | \\+ | [+] | 
| { } | 修饰匹配次数的符号。要匹配大括号,请使用 "\{" 和 "\}" | "{" | \\{ | [{] | 
| | | 左右两边表达式之间 "或" 关系。匹配 "|" 本身,请使用 "\|" | "|" | \\| | [|] | 
| ( ) | 标记一个子表达式的开始和结束位置。要匹配小括号,请使用 "\(" 和 "\)" | "(" | \\( | [(] | 
该文章在 2024/3/30 23:30:35 编辑过