Regex表示空字符串或10位数字
本文关键字:10位 数字 字符串 表示 Regex | 更新日期: 2023-09-27 17:55:04
开始:我刚开始使用Regexes,很难理解它们的情况。只是提醒一下。
对于一个项目,我正在尝试开发一个正则表达式,它采用a(一个空字符串(在C#中,"(或B(十(10(位数字。我已经能够想出如何完成10位数的部分:
"^[0-9X]{10}$"
但不是"空字符串或"部分。我想应该是这样的:
"^[]$|^[0-9X]{10}$"
显然,这不起作用,但我不知道如何写所做的,尽管这件事有很多主题。
问题:
A( 如果给定的字符串是字符串,那么返回true的正则表达式是什么。空(更确切地说是"(,还是正好是10位数?
B( 请解释它到底是如何工作的。这并不是说我没有尝试学习(我确实发现^$
是精确字符串匹配的锚,|
是OR运算符…(,只是正则表达式显然不是我天生的……然而,我必须使用它们。
(^$)|(^'d{10}$)
第一个选项匹配空字符串,第二个选项匹配10位数字。
我不知道你的X是什么用的,除非你在寻找一个十六进制字符串,如果是这样的话,你会想做以下事情:
(^$)|(^[0-9a-fA-FxX]{10}$)
^$|^[0-9X]{10}$
^
意味着匹配开始,$
意味着匹配结束,因为中间没有任何东西,什么都不匹配。如果有什么,这与不匹配
|
是交替算子,在替代之间
string a = "0123456789";
string b = "";
string reg = @"^(|'d{10})$";
if ( Regex.IsMatch( a, reg ) && Regex.IsMatch( b, reg ) ) {
Console.WriteLine( "Matched" );
}
'd
相当于[0-9]
{10}
正好是十倍|
是OR运算符^
是开始,$
是结束
括号将OR运算限制为零或起始和结束之间的十位数。
尝试以下REGEX。。。它会起作用。。。
if (Regex.IsMatch(textBox1.Text, @"^(?!'s*$).+")) //Check Not Empty String
{
if (Regex.IsMatch(textBox1.Text, @"^'d{10}$")) // Check ten digits - Not allowed Alphanumeric
{
MessageBox.Show("find Ten digits");
}
else
{
MessageBox.Show("Error");
}
}
else
{
MessageBox.Show("Empty String Found");
}