回答
Regex RgxUrl = new Regex("[^a-z0-9]");
blnContainsSpecialCharacters = RgxUrl.IsMatch(stringToCheck);
private static readonly char[] SpecialChars = "[email protected]#$%^&*()".ToCharArray();
...
int indexOf = text.IndexOfAny(SpecialChars);
if (indexOf == -1)
{
// No special chars
}
當然,將循環在內部 - 但至少你沒有做,在你的代碼。
嘿喬恩,你將如何實施馬克的拜爾斯思想? – Manish 2010-03-26 12:00:40
@Manish:鑑於你可能會有大量的人物進入白名單,一個正則表達式可能就是要走的路。 – 2010-03-26 12:15:21
而不是檢查如果字符串包含「特殊字符」它往往是更好地檢查該字符串中的所有字符都是「普通人」的角色,換句話說,使用白名單,而不是黑名單的。原因是有很多角色可以被認爲是「特殊角色」,如果你試圖列出所有你肯定會錯過的角色。
因此,不要做你所問的問題,而是檢查一下例如你的字符串是否匹配正則表達式@"^\w+$"
,或者你需要的任何東西。
好的想法...... !! – Manish 2010-03-26 11:59:51
@Bubblewrap:我建議在白名單中使用正則表達式。這不是問題的有效答案嗎?黑名單方法的問題在於他寫'etc ...'的位。計算機無法猜測你的意思,並寫出所有特殊字符的列表是恕我直言,這是解決這個問題的錯誤方法。 – 2010-03-26 12:02:50
IMO它不是。不知道問題背後的動機,你不能真正說使用白名單是使用IndexOfAny更好的(或者甚至是有效的)選擇。當我讀到它時,問題就是關於黑名單的問題。 – Bubblewrap 2010-03-26 12:08:22
使用PHP,你可以嘗試:
if (preg_match("[^A-Za-z0-9]", $yourString) {
//DO WHATEVER
}
這將返回TRUE,如果字符串包含一個字母或數字的任何其他。
希望這會有所幫助。
這個問題被標記爲C#。 – 2010-03-26 11:57:56
不在C#中,但仍然給我所需的正則表達式。 :) – Manish 2010-03-26 11:58:59
@Manish:嗯,那是* a *正則表達式 - 但不是完全匹配問題的那個。如果你說「我只想包括字母數字字符,沒有口音等」,那麼這將是一個不同的問題。 – 2010-03-26 12:16:07
也...
foreach (char character in "some*[email protected]#@!#string")
{
if(!Char.IsLetterOrDigit(character))
{
//It is a special character.
}
}
-1,具體說問題沒有使用LOOP ... – Manish 2010-03-26 12:23:25
public static bool HasSpecialCharacters(string str)
{
string specialCharacters = @"%[email protected]#$%^&*()?/>.<,:;'\|}]{[_~`+=-" +"\"";
char[] specialCharactersArray = specialCharacters.ToCharArray();
int index = str.IndexOfAny(specialCharactersArray);
//index == -1 no special characters
if (index == -1)
return false;
else
return true;
}
我試圖完成一個不同的結果。要創建一個返回用於分隔確定字符串的特殊字符(例如1#4#5)的方法,然後使用它來分割相同的字符串。 由於我所維護的系統是由許多不同的人創建的,在某些情況下,我不知道哪種模式(通常沒有),下面給了我很多幫助。我現在還不能投票。
public String Separator(){
**String specialCharacters = "%[email protected]#$#^&*()?/>.<:;\\|}]{[_~`+=-" +"\"";**
char[] specialCharactersArray = specialCharacters.toCharArray();
char[] a = entrada.toCharArray();
for(int i = 0; i<a.length; i++){
for(int y=0; y < specialCharactersArray.length; i++){
if(a[i] == specialCharactersArray[y]){
separator = String.valueOf(specialCharactersArray[y]);
}
}
}
return separator;
}
謝謝你們。
//apart from regex we can also use this
string input = Console.ReadLine();
char[] a = input.ToCharArray();
char[] b = new char[a.Length];
int count = 0;
for (int i = 0; i < a.Length; i++)
{
if (!Char.IsLetterOrDigit(a[i]))
{
b[count] = a[i];
count++;
}
}
Array.Resize(ref b, count);
foreach(var items in b)
{
Console.WriteLine(items);
}
Console.ReadLine();
//it will display the special characters in the string input
這裏是一個簡短的解決方案來檢查使用LINQ
private bool ContainsSpecialChars(string value)
{
var list = new[] {"~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "+", "=", "\""};
return list.Any(value.Contains);
}
LINQ的特殊字符是新的黑色。
string.Any(c => char.IsSymbol(c));
對於IsSymbol(),有效符號是UnicodeCategory的成員。
- 字母的符號,其中包括一組數學字母數字符號,以及符號如℅,№的,和™
- 數形式,如標和上標
- 數學運算符和箭頭
- 幾何符號
- 技術符號
- 盲文模式
- 裝飾符號
編輯:
這沒有捕捉到所有的字符。這可以補充:
string.Any(c => !char.IsLetterOrDigit(c));
- 1. 如何檢查字符串是否包含特殊字母?
- 2. 如何檢查是否輸入包含任何特殊字符
- 3. 檢查字符串是否包含python中的特殊字符
- 4. 檢查一個字符串是否只包含特殊字符
- 5. Scala檢查字符串是否包含特殊字符
- 6. 如何查找字符串是否包含任何字符串列表項?
- 7. 巴什 - 如何檢查一個字符串是否包含特殊字符(@#$%^&*()_ +!)
- 8. 如何包含在查詢字符串中的特殊字符
- 9. 查找字符串是否包含字
- 10. 如何檢查字符串是否包含任何數字
- 11. Preapre字符串包含特殊字符
- 12. 如何查找輸入中是否有任何特殊字符
- 13. 檢查一個字符串是否包含任何字符
- 14. Java - 查看一個字符串是否包含任何字符
- 15. MYSQL搜索一個字符串是否包含特殊字符?
- 16. 查找字符串中的任何特殊字符
- 17. 如何查找字符串是否包含所有特定字符?
- 18. 如何檢查字符串是否包含List/Array中的任何字符串
- 19. 如何檢查一個字符串是否包含任何一些字符串
- 20. 如何檢測一個字符串是否包含特殊字符?
- 21. 是否可以包含特殊字符
- 22. 如何驗證此字符串不包含Javascript中的任何特殊字符?
- 23. 檢查是否字符串包含任何順序的特定字符
- 24. 如何初始化字符串包含特殊字符`「`
- 25. 如何解析包含特殊字符的JSON字符串?
- 26. 查找字符串是否包含字符串
- 27. Powershell:如何檢查字符串是否包含任何重要字符?
- 28. 如何檢查字符串中是否包含字符javascript中的任何點
- 29. 如何檢查是否字符串包含字符串數組字符串
- 30. 如何檢查一個字符串是否包含特定的子字符串
你錯過了A-Z .. – Manish 2010-03-26 11:59:19
這會接受'à',是OP的特殊字符嗎? (當然不是,OP已經接受了答案) – 2015-11-06 10:12:50