2010-11-05 138 views
1

你好我想糾正一個正則表達式,將採取一個字符串,並確保其與「R」開頭,後面4個數字,然後什麼需要幫助的正則表達式

如。 RXXXX .................

任何人都可以幫助我嗎?這是ASP.NET

+2

這是如此可怕_basic_正則表達式,我建議你把你的生活的一個半小時,只是粉飾http://www.regular-expressions.info /之後,你應該明白知道。 – Wrikken 2010-11-05 00:08:19

+2

或者他可以花兩分鐘的時間提問,學習一些東西並節省時間。什麼是不必要的人喜歡你給他垃圾。 – 2010-11-05 00:14:18

+0

謝謝特拉維斯,我沒那麼有經驗,任何幫助都很好。 – BigJim 2010-11-05 00:18:04

回答

2

你希望它在行的開頭,而不是在任何地方。此外,爲了提高效率,您不希望末尾的.+.*因爲會匹配不必要的字符。所以下面的正則表達式是你真正想要的:

^R\d{4} 
+0

它很有趣,我在考慮效率,並刪除了$,因爲我正在輸入我的答案。不知道它是如何消除我的。*你得到我的投票!由於他對基本正則表達式的理解是零,所以整個區分大小寫的事情可能會像我一樣指出。 – pinkfloydx33 2010-11-05 00:13:19

2

這應該這樣做...

^R\d{4}.*$ 
  • \d{4}比賽4個位數
  • .*是一個簡單的方法來匹配任意字符0次或多次
  • 的開始^和結束$錨點確保沒有任何前後任何地址

文森特建議,爲您的特定任務,它甚至可以被簡化爲這...

^R\d{4} 

因爲正如你所說,它並不真正的問題是什麼如下。

+0

'。* $'沒用,你可以刪除它。 – 2010-11-05 00:11:42

0
^R\d{4}.* 
  • 插入符號^字符串中的第一個字符前的位置相匹配設置不區分大小寫選項。
  • \d匹配任何數字字符(它是相同的如[0-9])
  • {4}表明存在必須是4號,和
  • .*匹配0個或多個其他字符

要用途:

string input = "R0012 etc.."; 

    Match match = Regex.Match(input, @"^R\d{4}.*", RexOptions.IgnoreCase); 

    if (match.Success) 
    { 
     // Success! 
    } 

注意使用RexOptions.IgnoreCase忽略字母R的情況下,(所以它會匹配其啓動W¯¯串ith r。如果您不想進行不區分大小寫的匹配,請將其保留。