在C#中使用'|'分割字符串的疑惑

今天在写代码的时候要使用 | 符号对一串文本进行分割,然后用到了Regex.Split()这个方法,后面传递第二个参数的时候我试过了"|"和"|"两种都是错的,后面自己尝试发现正确的写法是"\|",虽然达到了目的但是我不太理解为什么用 | 符号分割却要写成"\|"这样?求解答,谢谢。
图片说明

c#

5个回答

 |在正则表达式里表示or,比如a|b不是匹配"a|b",而是匹配a或者b
所以用\|,这才是"|"
而C#的字符串中\是特殊字符,需要二次转义。所以是"\\|"
或者还有一种写法,就是不把\当作转义。前面加上@,也就是@"\|"
kldxxlxc
kldxxlxc 感谢解答
一年多之前 回复
 在C#字符串中,\并不代表实际的\,而是转义标记,比如
string s = "a\tb";
Console.WriteLine(s);
输出的是a    b,中间是一个制表符
如果要输出a\tb,那么是s = "a\\tb"
 所以 "\\|"其实是字符串\|,然后再被正则表达式引擎理解为|这个字符

刚开始学吗?建议去了解一下转义字符,这是一个基本概念。

正则中的|表示“或”,加个斜杠才表示字符

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!