0

I am trying to match the below string. I am not able to get it right. Could someone please help?

string str = "test\tester";
            if (Regex.IsMatch(str, "/\\/"))
                MessageBox.Show("Match");
            else
                MessageBox.Show("Not match");

I am wondering what is the Regex pattern I should use to get this matched.

4

4 回答 4

2

string.Contains()在这种情况下,从性能的角度来看,您最好使用:

string str = @"test\tester"; //<- note the @

if (str.Contains("\\"))
    MessageBox.Show("Match");
else
    MessageBox.Show("Not match");

请注意,在您的测试原始字符串中,您需要转义\or@字符串。

于 2013-08-13T16:24:54.850 回答
1

我怀疑你的测试代码是错误的

你在测试什么:

string str = "test\tester";

但是如果你得到的是“用反斜杠分隔的两个参数”,这应该是

string str = "test\\tester";

这是因为反斜杠在常量中表示为\\。因为\t恰好代表一个制表符,所以您的测试代码不会在编译时抛出错误。如果你这样做:

string str = "mytest\mytester";

你会得到一个错误,因为\m它是无效的。

于 2013-08-13T16:30:23.223 回答
1

只需使用:Regex.IsMatch(str, @".*\\.*")

double\用于转义反斜杠。

于 2013-08-13T16:19:48.690 回答
0

单个反斜杠的正则表达式是\\. 如果要使字符串在 C# 中完全匹配,请使用@运算符:

Regex.IsMatch(str, @".*\\.*")

或者,您可以使用 C# 的转义字符:

Regex.IsMatch(str, ".*\\\\.*")

于 2013-08-13T16:18:22.193 回答