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]*$