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

问题描述:

我试图找到只匹配字符串的正则表达式,如果它们不包含包含点(例如,它匹配stackoverflow,42abc47a-bc-31_4但不匹配:.swp,stackoverflowtest.如何仅匹配不包含点的字符串(使用正则表达式)

+0

顺便说一句,你应该更新问题,以准确地反映你想要的。你似乎*不*想要,但问题表明你*想*点。 – Tom 2011-01-20 00:45:57

^[^.]*$ 

^[^.]+$ 

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

您可以在regular-expressions.info网站上找到更多有用的信息。

+0

谢谢,这工作! – tx31415 2011-01-20 01:52:15

使用正则表达式不具有任何点:

^[^.]*$ 

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

顺便说一句,你不要使用正则表达式。在Java中,你可以说:

!someString.contains("."); 
+0

@tchrist - 我更新了我的答案。我真的已经使用过库(不能记住哪些),以便进行精确匹配。我觉得OP在说“不是点”时遇到了麻烦。另外 - 我认为我的`包含'方法是相当合理的。但也许这是作业或OP被迫使用一些只接受正则表达式的库... – Tom 2011-01-20 01:10:40

验证要求:第一个字符必须是字母,然后点'。'目标字符串中不允许。

//我们正在使用的输入字符串 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"); 
     }