-
Regex.IsMatch("\t", "\\t")
返回true
. -
Regex.IsMatch("\t", "\t")
返回true
. -
Regex.IsMatch("\\A", "\\A")
返回true
. -
Regex.IsMatch("\\t", "\\t")
返回false
而不是true
.为什么?
Regex.IsMatch("\t", "\\t")
返回true
.Regex.IsMatch("\t", "\t")
返回true
.Regex.IsMatch("\\A", "\\A")
返回true
.Regex.IsMatch("\\t", "\\t")
返回false
而不是true
.为什么?"\t"
是代表单个制表符的C#字符串.
"\\t"
是代表反斜杠后跟"t"的C#字符串.
虽然Regex.IsMatch
的第一个参数只是一个要匹配的字符串,但第二个参数是正则表达式.
101,单个制表符与单个制表符匹配.反斜杠后跟"t"does not与反斜杠后跟"t"匹配.相反,它还匹配单个制表符,就像它是单个制表符一样.这就是前两个IsMatch
调用返回TRUE,最后一个返回FALSE的原因.
"\\A"
是一个C#字符串,表示后跟"A"的反斜杠.后面跟"A"的反斜杠与字符串的开头匹配."\\A"
是一个字符串,所以它当然有一个开始.这就是第三个IsMatch
调用返回TRUE的原因.
以下是一些regex101.com链接,用于演示四个调用中的每一个.在那里,您可以看到没有C#‘S字符串转义的情况.