2013-05-01 72 views
0

我需要一個正則表達式來檢查字符串是否包含字母和數字的組合。特殊字符和空格不允許.my字符串應該包含至少一個字符和一個字母用於驗證包含字母和數字組合的字符串的正則表達式

+1

你嘗試過什麼?我認爲正則表達式是相當不錯的,包含教程和示例,也許你應該使用搜索引擎... – Matten 2013-05-01 08:30:30

+1

你能詳細說明你的問題嗎?這是相當含混的... http://gskinner.com/RegExr/可能是你的開始;) – 2013-05-01 08:31:12

+0

可能重複的[字母數字和下劃線的正則表達式](http://stackoverflow.com/q/ 336210/781965) – Jeff 2013-05-01 08:33:06

回答

2

只匹配一個0-9或az或AZ。

[0-9a-zA-Z] 

要匹配1個或多個

[0-9a-zA-Z]\+ 

如果你有興趣在整個線是字母數字字符。

^[0-9a-zA-Z]\+$ 

^匹配行的開頭,$匹配行的結尾。

+0

爲了防止對OP有用,可以使用'*'來表示0或更多(如果空字符串是可接受的) – Jeff 2013-05-01 08:40:02

+0

我的字符串應該包含至少一個字符和一個字母表 – neethu 2013-05-01 08:48:26

+0

'\ +'是什麼?我們使用的是.NET正則表達式,而不是grep。 – 2013-05-01 08:55:33

3

爲了兼容Unicode:

^[\pL\pN]+$ 

\pL代表任何字母
\pN代表任何數字

+0

任何符號呢? – 2015-10-15 17:35:03

+1

@Question_Guy:只需將它們添加到角色類中即可。 – Toto 2015-10-18 15:52:29

4

說明

這將

  • 找到所有其中至少有一個字母和一個數字
  • ,只包含字母和數字以任何順序

^(?=[^\s]*?[0-9])(?=[^\s]*?[a-zA-Z])[a-zA-Z0-9]*$

enter image description here

注意的一些實例,字符串我已在表達式末尾刪除$,因爲示例中的源字符串確實包含很多行。要正確驗證字符串,您需要刪除多行匹配並使用$字符,如上所示。

Live Example

示例文本

11 
22 
33 
1 
2 
3 
1a 
2b 
3c 
a1 
b2 
c3 
1a1a 
2b2b 
3b3b 
1a1 
2b2 
3b3 
a1a 
b2b 
c3c 
a 
b 
c 
aa 
bb 
cc 

C#代碼示例

using System; 
using System.Text.RegularExpressions; 
namespace myapp 
{ 
    class Class1 
    { 
     static void Main(string[] args) 
     { 
      String sourcestring = "source string to match with pattern"; 
      Regex re = new Regex(@"^(?=[^\s]*?[0-9])(?=[^\s]*?[a-zA-Z])[a-zA-Z0-9]*",RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace | RegexOptions.Multiline | RegexOptions.Singleline); 
      MatchCollection mc = re.Matches(sourcestring); 
      int mIdx=0; 
      foreach (Match m in mc) 
      { 
      for (int gIdx = 0; gIdx < m.Groups.Count; gIdx++) 
       { 
       Console.WriteLine("[{0}][{1}] = {2}", mIdx, re.GetGroupNames()[gIdx], m.Groups[gIdx].Value); 
       } 
      mIdx++; 
      } 
     } 
    } 
} 

相配實測值

[0][0] = 1a 
[1][0] = 2b 
[2][0] = 3c 
[3][0] = a1 
[4][0] = b2 
[5][0] = c3 
[6][0] = 1a1a 
[7][0] = 2b2b 
[8][0] = 3b3b 
[9][0] = 1a1 
[10][0] = 2b2 
[11][0] = 3b3 
[12][0] = a1a 
[13][0] = b2b 
[14][0] = c3c 

摘要

這工作,因爲表達的展望,以驗證它確實能找到一些和字符串中一個字母,然後匹配所有字母和數字

相關問題