我正在尝试匹配以下字符串。我无法做到对。有人可以帮忙吗?
string str = "test\tester";
if (Regex.IsMatch(str, "/\\/"))
MessageBox.Show("Match");
else
MessageBox.Show("Not match");
我想知道我应该使用什么样的正则表达式来匹配它。
答案 0 :(得分:2)
在这种情况下,从性能的角度来看,您更善于使用string.Contains()
:
string str = @"test\tester"; //<- note the @
if (str.Contains("\\"))
MessageBox.Show("Match");
else
MessageBox.Show("Not match");
请注意,在测试原始字符串中,您需要转义\
或@
字符串。
答案 1 :(得分:1)
只需使用:Regex.IsMatch(str, @".*\\.*")
双\
用于转义反斜杠。
答案 2 :(得分:1)
我怀疑您的测试代码错误。
您正在测试的内容:
string str = "test\tester";
但是如果你得到的是“用反斜杠分隔的两个参数”,那么这应该是
string str = "test\\tester";
这是因为反斜杠以常量\\
表示。因为\t
碰巧代表制表符,所以您的测试代码不会在编译时抛出错误。如果你这样做了:
string str = "mytest\mytester";
您会收到错误,因为\m
无效。
答案 3 :(得分:0)
单个反斜杠的正则表达式为\\
。如果要使字符串完全匹配C#,请使用@
运算符:
Regex.IsMatch(str, @".*\\.*")
或者,您可以使用C#的转义字符:
Regex.IsMatch(str, ".*\\\\.*")