Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用正则表达式进行字符串检查_C#_Wpf_Regex_String_Textbox - Fatal编程技术网

C# 使用正则表达式进行字符串检查

C# 使用正则表达式进行字符串检查,c#,wpf,regex,string,textbox,C#,Wpf,Regex,String,Textbox,我的程序中有一个文本框,其中包含一个字符串,必须满足一些要求。我问这个问题是为了找出满足这些要求的最佳方法 此字符串不能为空,并且必须完全由整数组成。字符串也可以包含空格,这是我的关键,因为空格不是整数 这就是我正在处理的问题(我知道目前可能有点多余): 我从中获得了Regex解决方案 问题:如何使此文本框只接受以下值: “34578”还是“456” 正则表达式似乎足够简单。它可以是沿着(具有指定约束的)路线的东西: 在LostFocus处理程序中,您可以使用如下内容: ButtonEnable

我的程序中有一个
文本框
,其中包含一个
字符串
,必须满足一些要求。我问这个问题是为了找出满足这些要求的最佳方法

字符串
不能为
,并且必须完全由整数组成。
字符串也可以包含空格,这是我的关键,因为空格不是整数

这就是我正在处理的问题(我知道目前可能有点多余):

我从中获得了
Regex
解决方案

问题:如何使此
文本框只接受以下值:

“34578”还是“456”

正则表达式似乎足够简单。它可以是沿着(具有指定约束的)路线的东西:

LostFocus
处理程序中,您可以使用如下内容:

ButtonEnabled = Regex.IsMatch(TextBox.Text, @"^([\s\d]+)?$");
在以下情况下,按钮将被启用:

  • 这是一个空字符串
  • 它只包含数字和空格
  • 如果您想要一个正则表达式来提取数字,您可以将模式更改为:

    ^(\s*(?<number>\d+)\s*)*$
    
    ^(\s*(?\d+)\s*)*$
    
    并使用
    编号
    捕获组


    请注意,第一个模式将匹配仅由空格组成的字符串。

    正则表达式似乎足够简单。它可以是沿着(具有指定约束的)路线的东西:

    LostFocus
    处理程序中,您可以使用如下内容:

    ButtonEnabled = Regex.IsMatch(TextBox.Text, @"^([\s\d]+)?$");
    
    在以下情况下,按钮将被启用:

  • 这是一个空字符串
  • 它只包含数字和空格
  • 如果您想要一个正则表达式来提取数字,您可以将模式更改为:

    ^(\s*(?<number>\d+)\s*)*$
    
    ^(\s*(?\d+)\s*)*$
    
    并使用
    编号
    捕获组


    请注意,第一个模式将匹配仅由空格组成的字符串。

    您的问题是什么?如果用户键入类似“1 12 13 14”的字符串,您需要单独处理它们(1、12、13、14)还是将其作为一个值1121314来读取?@Odrai我将单独处理它们。@gleng我更新了我的问题,希望有帮助。在此处构建并测试正则表达式,然后尝试此表达式…这应该可以让您开始:^[\d\W]*$您的问题是什么?如果用户键入类似“1 12 13 14”的字符串,您是否需要单独处理它们(1、12、13、14)或者您想将其作为一个值1121314来读取?@Odrai我将分别处理它们。@gleng我更新了我的问题,希望能有所帮助。在此处构建并测试正则表达式,然后尝试此表达式……这应该可以让您开始:^[\d\W]*$