使用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
是否完全由逗号组成。
Regex
相同的效果:private void IsOnlyOneChar(string input, char c)
{
for (var i = 0; i < input.Length; ++i)
if (input[i] != c)
return false;
return true;
}
虽然这不是你想要的字面上的答案,但在我看来,这是你最优的解决方案。
Regex.Match()
返回一个Match
对象,因此您需要检查该对象的Success
属性以确定它是否起作用。如果您只想要一个是或否的答案,则使用IsMatch()
更为合适。 - Alan Moore