我需要一个转换脚本,它将从字符串中删除前 6 个字符和最后 6 个字符。
字符串如下: 电子邮件接收@oasisdental.com.au 电子邮件
我只需要receipt@oasisdental.com.au
我正在从互联网上抓取数据,我将这封电子邮件作为前缀和后缀,我想删除这两个电子邮件。我已经尝试过正则表达式以及 C#,但我无法制作正则表达式或 C# 代码来执行此操作。
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;
您也可以将“电子邮件”字符串替换为空。但是它也会从电子邮件名称中删除它(例如:bob@email.com)
yourStringName.Replace("Email", string.Empty).TrimStart().TrimEnd();
您还可以使用Substring
,Remove
甚至是TrimStart
and的组合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());
老实说,确实有很多方法可以实现这一目标。
如果它真的必须是正则表达式,请使用:
/\A.{6}|.{6}\Z/