-1

我需要一个转换脚本,它将从字符串中删除前 6 个字符和最后 6 个字符。

字符串如下: 电子邮件接收@oasisdental.com.au 电子邮件

我只需要receipt@oasisdental.com.au

我正在从互联网上抓取数据,我将这封电子邮件作为前缀和后缀,我想删除这两个电子邮件。我已经尝试过正则表达式以及 C#,但我无法制作正则表达式或 C# 代码来执行此操作。

4

3 回答 3

3
 var s = "your string";
 s = s.Substring(6,s.Length-12);

我认为根据您的要求,我们不需要关心要修剪的字符数:

Regex reg = new Regex(@"\s.+@.+\s");//This is not a FULL regex for an email address
s = reg.Match(s).Value.Trim();

更新:

string upperLetters = new string(Enumerable.Range(65, 26).Select(c => (char)c).ToArray());
Regex reg = new Regex(string.Format("[(]([{0}]{{2}}.+?)[)]", upperLetters));
s = reg.Match(s).Groups[1].Value;
于 2013-08-21T19:22:02.190 回答
1

您也可以将“电子邮件”字符串替换为空。但是它也会从电子邮件名称中删除它(例如:bob@email.com)

yourStringName.Replace("Email", string.Empty).TrimStart().TrimEnd();

您还可以使用SubstringRemove甚至是TrimStartand的组合TrimEnd

string s = s.Substring(6, s.Length - (2 * 6)); //Second parameter is string length, not end index
string s = s.Remove(s.Length - 6, 6).Remove(0, 6);
string s = s.TrimStart("Email ".ToCharArray()).TrimEnd(" Email".ToCharArray());

老实说,确实有很多方法可以实现这一目标。

于 2013-08-21T19:24:50.057 回答
1

如果它真的必须是正则表达式,请使用:

/\A.{6}|.{6}\Z/
于 2013-08-21T22:55:11.637 回答