正则表达式只接受字母后跟逗号

时间:2013-10-19 04:43:41

标签: c# asp.net regex

我需要将用户输入限制为“wordA,wordB,wordC,wordD,wordE ...”等格式。它必须以单词开头(不区分大小写)并以单词结尾,每个单词之间只接受一个逗号。所以它应该是这样的:

   Match match = Regex.Match(tbx.text, @"//expression here",
    RegexOptions.IgnoreCase);

if (match.Success)
{
    //do sth
}

任何人都可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:2)

假设输入是允许单个单词(即没有逗号)的单词列表。

^[a-z]+(?:,[a-z]+)*$

由于您已经在使用RegexOptions.IgnoreCase,因此无需定义类[a-zA-Z]

答案 1 :(得分:0)

Match match = Regex.Match(input, @"^[0-9-]*$");

^表示匹配应从输入的开头开始,$表示应该在输入结束时结束。

*表示(仅)0或更多数字或短划线应该在那里(使用+代替1或更多)。

答案 2 :(得分:0)

试试这个:

^([a-zA-Z]+,?)+[a-zA-Z]$

从头到尾,必须以一个字母开头,可能后面跟一个逗号(对于单个单词条目),并且可以重复任意次;还必须以信件结尾。