對RegularExpressionValidator控件使用ASP.NET語法時,如何指定兩個連續字符的限制,例如字符'x'?用於限制連續字符的ASP.NET正則表達式
回答
你可以提供一個正則表達式如下所示:
(\\w)\\1+
(\\w)
將匹配任何單詞字符,並\\1+
將匹配任何字符與(\\w)
匹配。
我沒有此刻進入asp.net,而是採取這種控制檯應用程序爲例:
Console.WriteLine(regex.IsMatch("hello") ? "Not valid" : "Valid"); // Hello contains to consecutive l:s, hence not valid
Console.WriteLine(regex.IsMatch("Bar") ? "Not valid" : "Valid"); // Bar does not contain any consecutive characters, so it's valid
我不明白這個答案。我用ValidationExpression =「^([^ x])\\ 1 + $」嘗試了一個RegularExpressionValidator,但它不起作用。 – harrije 2010-10-19 18:42:37
Alexn是正確的,這是你連續字符用一個正則表達式,即匹配方式(a)\1
匹配aa
。
但是,我認爲這是一個當你拿着錘子時看起來像釘子一樣的情況。我不會使用正則表達式來驗證此輸入。相反,我建議在代碼中進行驗證(只是循環遍歷字符串,比較str[i]
和str[i-1]
,檢查此條件)。
好吧,我知道在後面的代碼中該做什麼......現在想弄清楚如何處理ASP.NET RegularExpressionValidator控件,這是一個精神上的挑戰。我仍然不知道要分配給ValidationExpression。我嘗試了ValidationExpression =「^([^(x)] \ 1)$」和其他各種變化,我仍然沒有一個RE可以消除兩個連續的'x'值。 – harrije 2010-10-20 02:53:22
我明白了。在我看來,從實際的角度來看,這並不值得精神上的挑戰,因爲我相信正則表達式並非真正解決這個問題。 – steinar 2010-10-20 09:15:02
這應該工作:
^((?<char>\w)(?!\k<char>))*$
它匹配abc
,但不abbc
。
關鍵是要使用所謂的「零寬度負向超前斷言」(語法:(?!subexpression))。
在這裏,我們確保與(?<char>\w)
匹配的組本身沒有跟隨(用(?!\k<char>)
表示)。
請注意,\w
可以替換爲任何有效的字符集(\w
不匹配空白字符)。
你也可以不用命名組(注意,引用組有2號):
^((\w)(?!\2))*$
及其重要的開始與^
與$
結束整個文本相匹配。
如果您只想排除與連續x
字符的文本,你可以使用這個
^((?<char>x)(?!\k<char>)|[^x\W])*$
或不反向引用
^(x(?!x)|[^x\W])*$
爲.NET Framework正則表達式的所有語法元素解釋here。
你可以使用正則表達式來驗證什麼是錯的,以及什麼是正確的。正則表達式(.)\1
將匹配任何兩個連續的字符,所以你可以拒絕任何給出IsValid結果的輸入。如果這是您需要的唯一驗證,那麼我認爲這種方式比試圖用正則表達式驗證正確的輸入要容易得多。
- 1. 使用Java正則表達式限制連續字符
- 2. ASP.NET正則表達式,限制數字
- 3. 正則表達式,字符數限制
- 4. 正則表達式(正則表達式):/ W連字符(javascript)
- 5. Java正則表達式用連字符
- 6. 正則表達式 - 限制字符串中的字符數量
- 7. 的Javascript正則表達式的非連續字符
- 8. N個連續字符的.NET正則表達式
- 9. 正則表達式不連續的字符
- 10. 限制正則表達式字邊界
- 11. 正則表達式來限制數字
- 12. 正則表達式來禁止兩個字符連續
- 13. 正則表達式以去除連續字符
- 14. 正則表達式拒絕連續字符
- 15. 正則表達式/ linq替換連續字符與計數
- 16. 正則表達式,連字符和不
- 17. 正則表達式刪除連字符
- 18. 正則表達式替換連字符
- 19. 正則表達式連字符
- 20. 使用正則表達式限制特殊字符
- 21. 使用正則表達式限制字符串替換?
- 22. 正則表達式連續行嗎?
- 23. Python:連續多個正則表達式?
- 24. 正則表達式匹配模式,也限制字符
- 25. 正則表達式限制數字字符串
- 26. ASP.Net正則表達式(%符號)正則表達式驗證器
- 27. 正則表達式限制小於100個字符的所有字母
- 28. 如何限制正則表達式中的字符?
- 29. 將字符數限制爲5000的正則表達式
- 30. 正則表達式字符串中的空格限制
本網站非常適合學習正則表達式,它具有可供您參考的快速參考。花費幾天的時間閱讀本教程,您將能夠自行構建正則表達式,即使在開始時您對它們一無所知:http://www.regular-expressions.info/。 – NightOwl888 2010-10-20 07:22:03
感謝您的RE鏈接。我已經爲它添加了書籤,並計劃更好地學習RE。我的問題是,我很少使用RE,以至於我在使用之間忘記了很多我需要知道的內容。然後有不同的口味可以直接穿過各種語言和工具。 – harrije 2010-10-20 14:12:54