如何匹配正则表达式中的垂直斜杠|
我尝试将此"1|2|3|4|"
这样的内容与此正则表达式“(<group1>.*?)|.*?|.*?|(<group2>.*?)|
我想要获得第一组值1
和第二组4
这个正则表达式不起作用
答案 0 :(得分:1)
除了Romoku的回答,如果你不想使用Regex.Escape
// double backslash "\\" to escape the \ in c# so it gets passed to regex
"(<group1>.*?)\\|.*?|.*?|(<group2>.*?)|"
// use the @ sign to indicate to c# to take text verbatim
@"(<group1>.*?)\|.*?|.*?|(<group2>.*?)|"
答案 1 :(得分:0)
你所拥有的是关闭,只需删除问号。星号匹配0或更多,因此不需要问号。
\ escapes |。你错过了一些反斜杠。它应该是这样的:
(<group1>.*)\|.*\|.*\|(<group2>.*)\|
你需要在C#的字符串声明前添加@符号来获取文字文本。
@"backslash\all day"