2011-01-20 81 views
17

我試圖找到只匹配字符串的正則表達式,如果它們不包含包含點(例如,它匹配stackoverflow,42abc47a-bc-31_4但不匹配:.swp,stackoverflowtest.如何僅匹配不包含點的字符串(使用正則表達式)

+0

順便說一句,你應該更新問題,以準確地反映你想要的。你似乎*不*想要,但問題表明你*想*點。 – Tom 2011-01-20 00:45:57

回答

3

使用正則表達式不具有任何點:

^[^.]*$ 

即零個或多個字符不整串點。我過去使用的一些正則表達式庫有獲得精確匹配的方法。在這種情況下,您不需要^$。在你的問題中有一種語言會有所幫助。

順便說一句,你不要使用正則表達式。在Java中,你可以說:

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

@tchrist - 我更新了我的答案。我真的已經使用過庫(不能記住哪些),以便進行精確匹配。我覺得OP在說「不是點」時遇到了麻煩。另外 - 我認爲我的`包含'方法是相當合理的。但也許這是作業或OP被迫使用一些只接受正則表達式的庫... – Tom 2011-01-20 01:10:40

1

驗證要求:第一個字符必須是字母,然後點'。'目標字符串中不允許。

//我們正在使用的輸入字符串 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"); 
     } 
相關問題