C# 常规Exp而不是字符串拆分

C# 常规Exp而不是字符串拆分,c#,C#,两天前我参加了一次考试,其中一道题是用新名字替换@前面的字母 因此,在试卷中,我们有数组=”toto@yahoo.com","mimi@yahoo.com".soso@yahoo.com" 所以我们应该把toto mimi soso换成不同的名字我所做的就是把字符串分开,取前四个字母,感谢上帝我得到了分数 我在想,如果@之前的字母数量不固定怎么办 我还能用什么方法呢?Reg Exp或者有什么不同的方法。你可以用正则表达式,或者你可以用基于子字符串、索引和连接的字符串操作。你可以用正则表达式,或者

两天前我参加了一次考试,其中一道题是用新名字替换@前面的字母

因此,在试卷中,我们有数组=”toto@yahoo.com","mimi@yahoo.com".soso@yahoo.com" 所以我们应该把toto mimi soso换成不同的名字我所做的就是把字符串分开,取前四个字母,感谢上帝我得到了分数

我在想,如果@之前的字母数量不固定怎么办
我还能用什么方法呢?Reg Exp或者有什么不同的方法。

你可以用正则表达式,或者你可以用基于子字符串、索引和连接的字符串操作。

你可以用正则表达式,或者你可以用基于子字符串、索引和连接的字符串操作。

使用正则表达式,你可以搜索像[a-zA-Z]这样的字符串*@使用正则表达式,你可以搜索像[a-zA-Z]*@这样的字符串,然后用你想要的任何字符串替换它。

是的,我会用正则表达式


简单的匹配技术,如split、substring、indexof等,往往速度很快,但正如您所发现的那样,缺乏灵活性,而且不管怎么说,regex都是非常快的。除非操作是在一个长循环中(因此会放大性能成本)我通常认为,未来的灵活性和意图的清晰性值得使用正则表达式。

是的,我会使用正则表达式


简单的匹配技术,如split、substring、indexof等,往往速度很快,但正如您所发现的那样,缺乏灵活性,而且不管怎么说,regex都是非常快的。除非操作是在一个长循环中(因此会放大性能成本)我通常认为,未来的灵活性和意图的清晰性值得使用正则表达式。

正则表达式可以工作,但只需获得@with
IndexOf
的位置,并使用所建议的
子字符串
提取地址部分就更简单了。如果有疑问,请选择simpler(换句话说:应用).

正则表达式可以工作,但只需获得@with
IndexOf
的位置,并使用所建议的
子字符串提取地址部分就更简单了。如果有疑问,请选择simpler(换句话说:应用)。

我支持Treb,不要使用正则表达式解析电子邮件地址

“@”的左侧可能没有合法字符的结尾,尤其是左侧可以是带引号的字符串,其本身可能包含“@”,即:

见本规范第3.4.1节


因此,应该根据最右边的“@”符号进行字符串拆分,因为这肯定不会出现在地址的域部分。

我支持Treb,不要使用正则表达式解析电子邮件地址

“@”的左侧可能没有合法字符的结尾,尤其是左侧可以是带引号的字符串,其本身可能包含“@”,即:

见本规范第3.4.1节

因此,应根据最右边的“@”符号进行字符串拆分,因为这肯定不会出现在地址的域部分。

这可能会有帮助:

// I want to replace soso with tania
string result = Regex.Replace("soso@yahoo.com", "([a-zA-Z0-9._]*)([@][a-zA-Z0-9._]*)", "tania$2");
这可能有助于:

// I want to replace soso with tania
string result = Regex.Replace("soso@yahoo.com", "([a-zA-Z0-9._]*)([@][a-zA-Z0-9._]*)", "tania$2");

同意!使用简单字符串搜索很容易做到这一点。应该是string.lastIndexOf(),而不是IndexOf()@Alnitak:从提供的示例来看,两者都会起作用,我假设OP能够根据实际情况选择正确的。同意!使用简单字符串搜索很容易做到这一点。应该是string.lastIndexOf(),而不是IndexOf()@阿尔尼塔克:从提供的例子来看,两者都会起作用,我假设OP能够根据实际情况选择正确的格式。啊,电子邮件格式很特殊-如果你尝试匹配标准允许的格式,它们对于正则表达式来说几乎是不可分的啊,电子邮件格式很特殊-它们几乎是不可分的如果您尝试匹配标准允许的内容,请选择regex?我不这么认为。我知道这会引起争议。Yes regex=clarity.regex.replace表示“我正在尝试替换某些内容。”“远比x=foo+substring+bar清晰。如果你没有得到正则表达式,那是你自己的注意事项,但是它执行的操作是清晰的。正则表达式->清晰?我不这么认为。我知道这会引起争议。Yes regex=清晰。Regex.replace说“我正在尝试替换一些东西”,这比x=foo+substring+bar要清楚得多。如果你没有得到正则表达式,那是你自己的了望,但它执行的操作是明确的。