首页 > 数据库 > 数据库开发技术 > 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次。要匹配 "+" 字符本身,请使用 "\+" |
"+" |
\\+ |
[+] |
{ } |
修饰匹配次数的符号。要匹配大括号,请使用 "\{" 和 "\}" |
"{" |
\\{ |
[{] |
| |
左右两边表达式之间 "或" 关系。匹配 "|" 本身,请使用 "\|" |
"|" |
\\| |
[|] |
( ) |
标记一个子表达式的开始和结束位置。要匹配小括号,请使用 "\(" 和 "\)" |
"(" |
\\( |
[(] |
原文作者:后端Q;如有侵权,请联系管理员删除。