[英]Restrict the special characters in the given regex
以下是我的正則表達式:
^[a-z0-9](?!.*?[^\na-z0-9]{2}).*?[a-z0-9]@gmail.com
其中接受-
和_
但不是連續的,我想將其限制為[$%&(){}!]
,這不會發生,請提供相同的解決方案。
給定允許的正則表達式:
abc$d@gmail.com
3) 無效。 表達式不應接受$,&,%,,,{,},(.).*
在 gmail 地址中
盡管問題非常模糊和令人困惑,但我認為您正在尋找的正則表達式如下。
^[^`~!@#$%^&*()+={}\[\]|\\:;“’<>?๐฿]*$
對於不包含這些字符的任何字符串,這將返回 true
.*?
可能是導致您出現問題的原因。 它將不匹配任何內容,最多匹配所有內容,但匹配所需的內容最少。 但是它接受的字符沒有限制( .
匹配任何東西)。
表達式不應接受
$,&,%,,,{,},(.).*
在 gmail 地址中
然后你會在你的正則表達式中需要類似(?![$&%!{}()*])
的東西。 這是一個非捕獲的負前瞻,它將斷言沒有找到列出的字符。
接受
-
和_
但不是連續的
您可以將-
和_
添加到接受的正則表達式中,並分別檢查重復項。 假設emailAddress
中的 email 地址,類似於
var validation = "^(?![$&%!{}()*])[a-z0-9_-]+@gmail.com";
var containsDuplicates = emailAddress.IndexOf("--") > -1 && emailAddress.IndexOf("__") > -1;
var isValid = Regex.IsMatch(emailAddress, validation) && !containsDuplicates;
現在,這將在有效的 gmail 地址(例如包含一個或多個句點的地址)上失敗,但這似乎是一個單獨的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.