正则表达式 Visual Studio 一个特定字符
Regex Visual Studio One Specific Character
我正在尝试验证 Visual Studio 中的文本框是字符 M 还是 F。我还进行了一些其他验证,这些验证都以类似的方式设置了正则表达式,它们都可以正常工作。然而,有了这个,它仍然允许我在文本框中使用任何字母。这段代码有什么问题?
public static bool IsGender(string gender)
{
bool validGender = true;
string _genderRegEx = @"^\:|m|M|f|F|$";
if ((!Regex.Match(gender, _genderRegEx).Success))
{
MessageBox.Show("Gender must be either M or F.");
validGender = false;
}
return validGender;
}
您的正则表达式不正确。你有:
@"^\:|m|M|f|F|$"
|
符号表示布尔值 OR
。因为您没有任何括号来对正则表达式的各个部分进行分组,所以 ^
仅与 \:
一起使用,而 $
则单独使用。结果,您的正则表达式匹配以下任何一项:
- 字符串的开头(
^
)加上:
m
或 M
f
或 F
- 字符串结尾(
$
).
每个字符串都有结尾,所以每个字符串都匹配。
正确的正则表达式是:
@"^[mMfF]$"
这匹配字符串的开头 (^
),后面紧跟 m
、M
、f
或 F
之一,后跟字符串结尾 ($
).
我正在尝试验证 Visual Studio 中的文本框是字符 M 还是 F。我还进行了一些其他验证,这些验证都以类似的方式设置了正则表达式,它们都可以正常工作。然而,有了这个,它仍然允许我在文本框中使用任何字母。这段代码有什么问题?
public static bool IsGender(string gender)
{
bool validGender = true;
string _genderRegEx = @"^\:|m|M|f|F|$";
if ((!Regex.Match(gender, _genderRegEx).Success))
{
MessageBox.Show("Gender must be either M or F.");
validGender = false;
}
return validGender;
}
您的正则表达式不正确。你有:
@"^\:|m|M|f|F|$"
|
符号表示布尔值 OR
。因为您没有任何括号来对正则表达式的各个部分进行分组,所以 ^
仅与 \:
一起使用,而 $
则单独使用。结果,您的正则表达式匹配以下任何一项:
- 字符串的开头(
^
)加上:
m
或M
f
或F
- 字符串结尾(
$
).
每个字符串都有结尾,所以每个字符串都匹配。
正确的正则表达式是:
@"^[mMfF]$"
这匹配字符串的开头 (^
),后面紧跟 m
、M
、f
或 F
之一,后跟字符串结尾 ($
).