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运算符…(,只是正则表达式显然不是我天生的……然而,我必须使用它们。

Regex表示空字符串或10位数字

(^$)|(^'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");
        }