C#正则表达式特殊字符及其处理
|
admin
2024年3月30日 23:30
本文热度 471
|
在表达式中有特殊意义,需要添加 "" 才能匹配该字符本身的字符汇总,特别注意:""字符本身在正则表示里需要用"\\"表示
正则表达式中的特殊字符,就是一些有特殊含义的字符,如“*.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 编辑过