c# Regex - if字符串只包含一个字符

本文关键字:包含一 字符 字符串 Regex if | 更新日期: 2023-09-27 18:04:17

使用c#/Regex,如何找到只包含逗号而不包含字母数字(或其他非逗号)符号的字符串?

a: ',,,,,,,'  match
b: ',,,,,,#A' no match

c# Regex - if字符串只包含一个字符

[^,]

如果匹配,则表示字符串包含非逗号字符。

一个更完整的例子:

if (!Regex.IsMatch(yourTestString, "[^,]"))
{
    // This string does NOT contain commas
}

应该这样做:

var text = ",,,";
Regex.IsMatch(text, @"^,+$");    // true

如果我没看错你的问题,你想知道一个字符串是否只包含逗号。

如果是,使用这个正则表达式:^[,]+$

这将只匹配包含一个或多个逗号的字符串。

只有逗号的字符串?

Regex.IsMatch(str, @"^,*$");

这将告诉您str是否完全由逗号组成

我建议,在最坏的情况下,单字符正则表达式总是必须检查其输入字符串的每个字符,因此简单的for循环肯定会更有效。像这样的东西会在更短的时间和空间内产生与任何等效的Regex:

完全相同的效果。
private void IsOnlyOneChar(string input, char c)
{
    for (var i = 0; i < input.Length; ++i)
        if (input[i] != c)
            return false;
    return true;
}

不是你想要的答案,但在我看来这是你的最佳解决方案。