0

如何|在正则表达式中匹配垂直斜杠

我试图"1|2|3|4|"用这个正则表达式 匹配这样的内容
(<group1>.*?)|.*?|.*?|(<group2>.*?)|

我想获得第一组值1和第二组4这个正则表达式不起作用

4

2 回答 2

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>.*?)|"
于 2013-07-25T16:45:41.913 回答
0

您所拥有的很接近,只需删除问号即可。星号匹配 0 或更多,因此不需要问号。

\ 转义 |。你错过了几个反斜杠。它应该是这样的:

(<group1>.*)\|.*\|.*\|(<group2>.*)\|

您需要在 C# 的字符串声明前添加 @ 符号以获取文字文本。

@"backslash\all day"
于 2013-07-25T16:49:43.933 回答