如何只匹配不包含点的字符串(使用正则表达式)

时间:2011-01-20 00:38:37

标签: regex

我正在尝试找到只匹配字符串的正则表达式,如果它们包含一个点,i.f。它与stackoverflow42abc47a-bc-31_4匹配,但不符合:.swpstackoverflowtest.

3 个答案:

答案 0 :(得分:35)

^[^.]*$

^[^.]+$

取决于您是否要匹配空字符串。某些应用程序可能会隐式提供^$,在这种情况下,它们是不必要的。例如:HTML5 input element's pattern attribute

您可以在regular-expressions.info网站上找到更多精彩信息。

答案 1 :(得分:4)

使用没有任何点的正则表达式:

^[^.]*$

这是整个字符串中不是点的零个或多个字符。我过去使用的一些正则表达式库有获得完全匹配的方法。在这种情况下,您不需要^$。在你的问题中使用一种语言会有所帮助。

顺便说一句,你没有拥有来使用正则表达式。在java中你可以说:

!someString.contains(".");

答案 2 :(得分:1)

验证要求:第一个字符必须是Letter然后是Dot'。'目标字符串中不允许使用。

//我们正在使用的输入字符串             string input =“1A_aaA”;

        // The regular expression we use to match
        Regex r1 = new Regex("^[A-Za-z][^.]*$"); //[\t\0x0020] tab and spaces.

        // Match the input and write results
        Match match = r1.Match(input);
        if (match.Success)
        {
            Console.WriteLine("Valid: {0}", match.Value);

        }
        else
        {
            Console.WriteLine("Not Match");
        }