C# Regex.IsMatch不';I don’我没有按预期工作
我希望代码:C# Regex.IsMatch不';I don’我没有按预期工作,c#,regex,C#,Regex,我希望代码:Regex.IsMatch(val.ToString(),“[{()}]”每次值是这类括号时都返回true。该代码在这些括号-{()}上有效,但在这些括号-[]上无效 这是为什么?我该如何修复它?此外,当我试图修复它并重新定位括号(如“{([])}”时,它引发了一个异常-为什么括号的位置很重要以及它如何影响代码?[…]匹配一组字符,但不包括[],因为它们是语法的一部分。你想要的是: Regex.IsMatch(val.ToString(),@"[\[{()}\]]") 因为它还包括
Regex.IsMatch(val.ToString(),“[{()}]”
每次值是这类括号时都返回true。该代码在这些括号-{()}上有效,但在这些括号-[]上无效
这是为什么?我该如何修复它?此外,当我试图修复它并重新定位括号(如“{([])}”时,它引发了一个异常-为什么括号的位置很重要以及它如何影响代码?
[…]
匹配一组字符,但不包括[]
,因为它们是语法的一部分。你想要的是:
Regex.IsMatch(val.ToString(),@"[\[{()}\]]")
因为它还包括[
和]
(转义)
(需要明确的是:上述语法与包含这些字符中任何一个的字符串相匹配。它不确保它包含适当的开头/结尾字符)
[…]
与一组字符匹配,但不包括[]
,因为它们是语法的一部分。你想要的是:
Regex.IsMatch(val.ToString(),@"[\[{()}\]]")
因为它还包括[
和]
(转义)
(需要明确的是:上述语法与包含这些字符中任何一个的字符串相匹配。它不确保它包含适当的开头/结尾字符)
[…]
与一组字符匹配,但不包括[]
,因为它们是语法的一部分。你想要的是:
Regex.IsMatch(val.ToString(),@"[\[{()}\]]")
因为它还包括[
和]
(转义)
(需要明确的是:上述语法与包含这些字符中任何一个的字符串相匹配。它不确保它包含适当的开头/结尾字符)
[…]
与一组字符匹配,但不包括[]
,因为它们是语法的一部分。你想要的是:
Regex.IsMatch(val.ToString(),@"[\[{()}\]]")
因为它还包括[
和]
(转义)
(需要明确的是:上面的语法匹配包含这些字符中任何一个的字符串。它不能确保它包含适当的开头/结尾字符)这可以通过一种比正则表达式更简单(如果需要的话,更快)的方法来解决 硬编码字符范围:
switch (val.ToString()) {
case "{":
case "}":
case "(":
case ")":
case "[":
case "]":
// match!
break;
}
var chars = "[]{}()".ToCharArray();
var str = val.ToString();
if (str.Length == 1 && str.IndexOfAny(chars) == 0) {
// match!
}
可配置的字符范围:
switch (val.ToString()) {
case "{":
case "}":
case "(":
case ")":
case "[":
case "]":
// match!
break;
}
var chars = "[]{}()".ToCharArray();
var str = val.ToString();
if (str.Length == 1 && str.IndexOfAny(chars) == 0) {
// match!
}
这可以通过一种比正则表达式更简单(更快速,如果需要的话)的方法来解决 硬编码字符范围:
switch (val.ToString()) {
case "{":
case "}":
case "(":
case ")":
case "[":
case "]":
// match!
break;
}
var chars = "[]{}()".ToCharArray();
var str = val.ToString();
if (str.Length == 1 && str.IndexOfAny(chars) == 0) {
// match!
}
可配置的字符范围:
switch (val.ToString()) {
case "{":
case "}":
case "(":
case ")":
case "[":
case "]":
// match!
break;
}
var chars = "[]{}()".ToCharArray();
var str = val.ToString();
if (str.Length == 1 && str.IndexOfAny(chars) == 0) {
// match!
}
这可以通过一种比正则表达式更简单(更快速,如果需要的话)的方法来解决 硬编码字符范围:
switch (val.ToString()) {
case "{":
case "}":
case "(":
case ")":
case "[":
case "]":
// match!
break;
}
var chars = "[]{}()".ToCharArray();
var str = val.ToString();
if (str.Length == 1 && str.IndexOfAny(chars) == 0) {
// match!
}
可配置的字符范围:
switch (val.ToString()) {
case "{":
case "}":
case "(":
case ")":
case "[":
case "]":
// match!
break;
}
var chars = "[]{}()".ToCharArray();
var str = val.ToString();
if (str.Length == 1 && str.IndexOfAny(chars) == 0) {
// match!
}
这可以通过一种比正则表达式更简单(更快速,如果需要的话)的方法来解决 硬编码字符范围:
switch (val.ToString()) {
case "{":
case "}":
case "(":
case ")":
case "[":
case "]":
// match!
break;
}
var chars = "[]{}()".ToCharArray();
var str = val.ToString();
if (str.Length == 1 && str.IndexOfAny(chars) == 0) {
// match!
}
可配置的字符范围:
switch (val.ToString()) {
case "{":
case "}":
case "(":
case ")":
case "[":
case "]":
// match!
break;
}
var chars = "[]{}()".ToCharArray();
var str = val.ToString();
if (str.Length == 1 && str.IndexOfAny(chars) == 0) {
// match!
}
你想要实现什么?你想要实现什么?你想要实现什么?你想要实现什么?