使用C#/ Regex,如何找到只包含逗号而不包含字母数字(或其他非逗号)符号的字符串?
a: ',,,,,,,' match
b: ',,,,,,#A' no match
答案 0 :(得分:6)
[^,]
如果匹配,则表示字符串包含非逗号字符。
更完整的例子:
if (!Regex.IsMatch(yourTestString, "[^,]"))
{
// This string does NOT contain commas
}
答案 1 :(得分:3)
这应该这样做:
var text = ",,,";
Regex.IsMatch(text, @"^,+$"); // true
答案 2 :(得分:2)
如果我正确阅读了您的问题,您想知道字符串是否只包含逗号。
如果是这样,请使用此正则表达式:^[,]+$
。
这只会匹配包含一个或多个逗号的字符串,而不包含其他内容。
答案 3 :(得分:2)
一串只逗号?
Regex.IsMatch(str, @"^,*$");
这会告诉你str
是否完全由作曲家组成。
答案 4 :(得分:1)
我建议,因为一个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;
}
不是你想要的答案,但在我看来,这是你的最佳解决方案。