今天在写代码的时候要使用 | 符号对一串文本进行分割,然后用到了Regex.Split()这个方法,后面传递第二个参数的时候我试过了"|"和"|"两种都是错的,后面自己尝试发现正确的写法是"\|",虽然达到了目的但是我不太理解为什么用 | 符号分割却要写成"\|"这样?求解答,谢谢。
|在正则表达式里表示or,比如a|b不是匹配"a|b",而是匹配a或者b
所以用\|,这才是"|"
而C#的字符串中\是特殊字符,需要二次转义。所以是"\\|"
或者还有一种写法,就是不把\当作转义。前面加上@,也就是@"\|"
在C#字符串中,\并不代表实际的\,而是转义标记,比如
string s = "a\tb";
Console.WriteLine(s);
输出的是a b,中间是一个制表符
如果要输出a\tb,那么是s = "a\\tb"
所以 "\\|"其实是字符串\|,然后再被正则表达式引擎理解为|这个字符
刚开始学吗?建议去了解一下转义字符,这是一个基本概念。
正则中的|表示“或”,加个斜杠才表示字符