正则表达式拒绝逗号以外的特殊字符

时间:2010-02-20 11:57:30

标签: c# asp.net regex

我在asp.net工作。我正在使用Regular Expression Validator

请你帮我创建一个正则表达式,不允许逗号以外的特殊字符。逗号必须被允许。

我检查了regexlib,但我找不到匹配。我对^(a-z|A-Z|0-9)*[^#$%^&*()']*$感到愤怒。当我将其他字符添加为无效时,它不起作用。

还有,请你建议我找一个正常表达的好资源吗? regexlib似乎很大;但列出非常有限但最常用的例子的任何其他地方?

另外,我可以使用C#代码创建表达式吗?有什么文章吗?

8 个答案:

答案 0 :(得分:3)

[\ d \ W \ S,] *

只是一个猜测

答案 1 :(得分:3)

[\w\s,]+

工作正常,你可以看到吼叫。

RegExr是一个用实时结果测试正则表达式的好地方,它还附带了一个非常完整的常用表达式列表。

[]字符类\w匹配任何单词字符(字母数字和下划线)。 \s 匹配任何空白字符(空格,制表符,换行符)。 ,包括逗号+是贪婪的匹配;这将与之前的1次或更多次匹配。

答案 2 :(得分:1)

要回答任何文章,我从这里开始,发现它是一个很好的资源:
http://www.regular-expressions.info/

对于您当前的问题,请尝试以下方法:

[\w\s,]*

以下是细分:

  • 匹配下面列表中的单个字符«[\ w \ s,] *»
    • 在零和无限次之间,尽可能多次,根据需要回馈(贪婪)«*»
    • 单词字符(字母,数字等)«\ w»
    • 空格字符(空格,制表符,换行符等)«\ s»
    • 字符“,”«,»

答案 3 :(得分:0)

对于不是逗号的单个字符,[^,]应该可以正常工作。

答案 4 :(得分:0)

你可以试试[\ w \ s,]正则表达式。此正则表达式将仅匹配字母数字字符和逗号。如果文本中出现任何其他字符,那么这将不匹配。

关于正则表达式资源的第二个问题,您可以转到

http://www.regular-expressions.info/

这个网站有很多关于正则表达式的教程,还有很多有用的信息。

  

另外,我可以使用创建表达式吗?   C#代码?有什么文章吗?

通过这个,你的意思是说你想知道正则表达式执行的类和方法是什么?或者您想要为您创建正则表达式的工具?

答案 5 :(得分:0)

你可以使用C#创建表达式,这样的技巧通常就是这样:

        Regex regex = new Regex(@"^[a-z | 0-9 | /,]*$", RegexOptions.IgnoreCase);
        System.Console.Write("Enter Text");
        String s = System.Console.ReadLine();
        Match match = regex.Match(s);
        if (match.Success == true)
        {
            System.Console.WriteLine("True");
        }

        else
        {
            System.Console.WriteLine("False");
        }
        System.Console.ReadLine();

您需要导入System.Text.RegularExpressions; 上面的正则表达式只接受数字,字母(大写和小写)和逗号。

对于正则表达式的一个小介绍,我认为MCTS 70-536的书可以提供很大帮助,我很确定你可以从某个地方下载它或获得副本。

我假设您从未在C#中使用正则表达式,因此我提供了上面的代码。

希望这有帮助。

答案 6 :(得分:0)

谢谢你,所有..

[\ w \ s,] *工作

让我通过regular-expressions.info,如果我需要进一步的支持,请回来。

让我尝试使用C#代码方法,如果需要进一步支持,请回来。

[这个论坛太棒了。质量回复所以qucik ..]

再次感谢

答案 7 :(得分:0)

(…)表示分组,而不是用[…]表示的字符集。所以试试这个:

^[a-zA-Z0-9,]*$

这将只允许使用字母数字字符和逗号。