c#通过正则判断字符串中是否仅含有数字和;,:-
时间: 2024-03-16 10:46:21 浏览: 198
你可以使用正则表达式来判断字符串中是否仅含有数字和特定字符,如下所示:
```csharp
string input = "123:456-789;0";
bool onlyContainsDigitsAndSpecialChars = Regex.IsMatch(input, @"^[0-9;,:-]+$");
```
这里的正则表达式 `^[0-9;,:-]+$` 中:
- `^` 表示字符串的开头
- `[0-9;,:-]` 表示数字、分号、冒号、逗号和减号任意一个字符
- `+` 表示前面的字符可以出现一次或多次
- `$` 表示字符串的结尾
因此,该正则表达式匹配的字符串必须是由数字、分号、冒号、逗号和减号组成的,且不能包含其他字符。如果匹配成功,`onlyContainsDigitsAndSpecialChars` 的值将为 `true`,否则为 `false`。
相关问题
C#判断一个字符串是否是数字或者含有某个数字
C#可以使用正则表达式来判断一个字符串是否是数字或者含有某个数字。下面是一个示例代码:
```csharp
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
string input = "123456";
bool isNumber = Regex.IsMatch(input, @"^\d+$"); // 判断是否为数字
bool hasNumber = Regex.IsMatch(input, @"5"); // 判断是否含有数字5
Console.WriteLine("Is number: {0}", isNumber);
Console.WriteLine("Has number 5: {0}", hasNumber);
}
}
```
在上面的示例中,使用`Regex.IsMatch()`方法和正则表达式来判断字符串是否是数字或者含有数字。其中,`^\d+$`表示字符串必须由数字组成,而`5`则表示字符串中是否含有数字5。
C# 判断字符串是否含有特殊字符
在C#中,判断字符串是否包含特殊字符通常涉及遍历字符串中的每个字符,并检查它们是否属于标准的ASCII字母数字字符集之外的特殊字符。可以使用正则表达式或者直接遍历的方式来实现。这里我们来看两种方法:
**方法一:使用正则表达式**
```csharp
using System.Text.RegularExpressions;
bool containsSpecialChars(string str) {
string regexPattern = @"[^a-zA-Z0-9\s]"; // 匹配非字母、数字和空格的字符
return Regex.IsMatch(str, regexPattern);
}
```
在这个例子中,`Regex.IsMatch()`会返回`true`如果字符串中有匹配正则表达式的特殊字符。
**方法二:逐个字符遍历**
```csharp
bool containsSpecialChars(string str) {
foreach(char c in str) {
if (!char.IsLetterOrDigit(c) && c != ' ') { // 如果不是字母、数字或空格
return true;
}
}
return false;
}
```
这个方法遍历字符串中的每一个字符,如果发现一个不属于字母、数字或空格的字符,则返回`true`。
阅读全文