回答
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