2012-01-13 107 views
0

我想使用正則表達式來驗證它只有一定的格式是允許正則表達式驗證括號[]字符串

樣品的文本字段中的一個:[蘋果] [橙] [飄飄] ABC

這裏是格式的一些規則

  1. 括號內的項目和字符串的開始處不允許有字符。

  2. 至少有一個括號的項目,但沒有更多的則5

  3. 只有這些串詞被允許在括號內的項目:蘋果,橘子,榴蓮,梨。

  4. 整個字符串不超過100個字符。

我想出了這一點:"(<?bracket>\[(Apple|Orange|Durian)\]){1,5}"但我嘗試加載我的頁面時,此錯誤:

解析「」(?括號」 - 沒有足夠的)的 任何人都可以協助正則表達式根據格式規則,謝謝。

回答

1

什麼是字符串<?bracket>在那裏做?我不認爲這是任何正則表達式語法的一部分,我也沒有發現它作爲一個特定於asp.net的事情。

Regar你的四個標準:

1)在正則表達式的開頭放一個脫字符(字符^)。這表明無論什麼後,它必須成爲該領域的開始。

2)我認爲你有這個權利。將整個表達式括在括號內,然後是{1,5}

3)我認爲這是正確的。這些詞需要被大寫?如果不是,請記住指定小寫字母作爲替代(例如,[Dd]urian)或向整個表達式添加不區分大小寫的修飾符。

4)我不認爲你可以使用相同的正則表達式來做到這一點。你需要做一個單獨的驗證步驟來查看字符串是否與^.{1,100}$類似。

+0

刪除作品,現在唯一不起作用的限制是我不能在最後一個括號內的字符串後添加任何字符。 – k80sg 2012-01-13 03:29:35

+0

在這種情況下,它聽起來像是測試正則表達式和字段內容之間的完全匹配,而不是部分匹配。你應該能夠改變這種行爲,但我不知道如何,不速之客。作爲一種解決方法,您可以在正則表達式的末尾添加「。+」,以表示任何其他字符都是有效的。 第二個驗證步驟,我在標準4中提到,仍應確保整個字符串在長度限制內。 – octern 2012-01-13 03:39:45

相關問題