字符串操作 - c# 和 gmail

String manipulation - c# and gmail

我尝试做一些研究,但我发现的一切都没有涵盖我目前的困境。

字符串操作是基本的吧?但这是我的问题,我正在从 gmail 中获取电子邮件正文,正文看起来像这样(在删除所有 HTML 格式后,它是一个常量字符串): 姓名 : Testy Von Test 手机 1111111111 电子邮件 testy@testy

现在我需要找到字符串"Name",然后使用裁剪得到全名,但是我如何区分这个呢?我如何告诉我的编码查找从名称到 Cell 的所有内容并从那里获取所有内容?我确实确实尝试找到解决方案,因为我相信我只是在脑海中遗漏了一些逻辑。如果你只是给我一篇文章 link 我会很乐意自己阅读并应用逻辑(我不期望任何人为我做我的工作),我只需要在正确的方向上适当的推动请

提前致谢。

(作为编辑,如果有人应该关注这个问题,请查看所有答案,有很多令人惊叹的答案和想法)

这个怎么样:

int start = myString.IndexOf("Name") + "Name : ".Length;
int len = myString.IndexOf("Cell") - start;

string res = myString.Substring(start, len);

或者通过正则表达式:

Regex r = new Regex("Name(.*)Cell");
string res = r.Matches[0].Value;

您的字符串似乎格式不正确。名称后跟冒号,Cell 不是...这可能会变得非常棘手...

但使用子字符串的简单解决方案。

var s = "Name : Testy Von Test Cell 1111111111 email testy@testy";
var name = s.Substring(
    s.IndexOf(":")+1,
    s.IndexOf("Cell")-s.IndexOf(":")-1);

您的邮件正文是否始终采用准确的格式?

例如,您可以按照 jsfiddle 中所示的方式进行操作。

var mailbody = 'Name : Testy Von Test Cell 1111111111 email testy@testy';
var nameregex = /Name(.+?)Cell/
var match = nameregex.exec(mailbody);
console.log(match[1]); // Outputs " : Testy Von Test "

在您的示例中,如控制台输入所示,它将捕获“: Testy von test”。然后你可以随心所欲地操纵它。您还可以使用其他选项修改正则表达式,具体取决于您的邮件输出如何变化。

var mailbody = 'Name : Testy Von Test Cell 1111111111 email testy@testy';
var nameregex = /Name\s:\s(.+?)\sCell/
var match = nameregex.exec(mailbody);
console.log(match[1]); // Outputs "Testy Von Test"