繁体   English   中英

C#Regex - 如果字符串只包含一个字符

[英]C# Regex - if string only contains a character

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

a: ',,,,,,,'  match
b: ',,,,,,#A' no match
[^,]

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

一个更完整的例子:

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

这应该这样做:

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

如果我正确地阅读了您的问题,您想知道字符串是否只包含逗号。

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

这只会匹配包含一个或多个逗号的字符串,而不包含任何其他内容。

一串只逗号?

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

这将告诉你str是否完全由commans组成。

我建议,作为一个char-regex总是必须在最坏的情况下检查其输入字符串的每个字符,一个简单的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;
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM