Console.WriteLine("Enter a string");
string str = Console.ReadLine();
注意:用户可以输入任何分隔符,例如, @ # $ % * & ; :
等。
示例:对于输入:1*2*5*9
,分隔符为*
答案 0 :(得分:5)
您可以在正则表达式的帮助下尝试猜测;让我们不是通过未知分隔符来分割输入,而是通过主文本项(整数?)来分割输入,我们将得到分隔符作为结果:
string source = @"1*2*5*9";
// Main text pattent; user is supposed to input integers numbers and delimiters
string bodyPattern =
@"-?[0-9]+";
var delimiters = Regex
.Split(source, bodyPattern)
.Select(item => item.Trim())
.Where(item => !string.IsNullOrEmpty(item))
.Distinct()
.ToArray();
Console.Write(string.Join(Environment.NewLine, delimiters));
结果:
*
请注意,如果"1*2#5%9"
输入,您将获得["*", "#", "%"]
分隔符。
编辑:您真的想要分隔符吗?更自然的问题是提取主要文本项。如果是您的情况,您也可以使用正则表达式解决它:
// ["1", "2", "5", "9"]
var items = Regex
.Matches(source, bodyPattern)
.OfType<Match>()
.Select(match => match.Value)
.ToString();
答案 1 :(得分:1)
以下内容应该有所帮助
char[] delimiter = {'@','#','&', '*'};
foreach (char c in str)
{
if(delimiter.Contains(c)
//You found your char
}
答案 2 :(得分:1)
Using system.text.regularexpressions;
Regex ptr = new Regex(@"^[a-zA-Z0-9]*$") ;
if(!ptr.Ismatch(str)) //whatever you want