管理杂谈OA答疑ERP答疑教程搜索

C#正则表达式特殊字符及其处理


在表达式中有特殊意义,需要添加 "" 才能匹配该字符本身的字符汇总,特别注意:""字符本身在正则表示里需要用"\\"表示

正则表达式中的特殊字符,就是一些有特殊含义的字符,如“*.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。要匹配 "+" 字符本身,请使用 "\+"

"+"

\\+

[+]

{ }

修饰匹配次数的符号。要匹配大括号,请使用 "\{" 和 "\}"

"{"

\\{

[{]

|

左右两边表达式之间 "或" 关系。匹配 "|" 本身,请使用 "\|"

"|"

\\|

[|]

( )

标记一个子表达式的开始和结束位置。要匹配小括号,请使用 "\(" 和 "\)"

"("

\\(

[(]



更多精彩文章浏览...
点击右上角图标分享到朋友圈
官方网站:http://www.clicksun.cn
咨询热线:400-186-1886
服务邮箱:service@clicksun.cn