在字符串中查找未知子串
Find Unknown substring in string
我有类似这样的电子邮件模板。
”
美好的一天 personname,
我想推荐一个术语。
姓名:用户将输入值
比率:用户将输入值
公司名称:用户将输入值
地址:用户将输入值
建议费率:用户将输入值
“
这是一个 html 电子邮件模板,我需要检索用户为每个 'question' 输入的值。然后我将采用这些值,它是 'question' 并从中创建一个 html table。
现在,我的问题是我需要找到这些值,但我不知道从 template/larger 字符串中获取未知字符串的好方法。
字符串解析与未知字符串无关;这是关于已知的字符串
您没有 post 您的 html 电子邮件是什么样子,但让我们假设它看起来像这样:
<p>Name and Surname: user will enter value</p>
<p>Rate: user will enter value</p>
如您所见,它是一个非常统一的结构。我们可以拆分 "<p>"
和 "</p>"
:
string parts = body.Split(new []{ "<p>", "</p>"}, StringSplitOptions.RemoveEmptyEntries);
然后我们可以遍历生成的数组以查找我们知道的内容,这样我们就可以检索我们不知道的内容:
foreach(string part in parts)
{
if(part.StartsWith("Name and Surname:"))
name = part.Substring("Name and Surname:".Length).Trim();
else if ....
}
以这种方式解析并不是最稳健的解决方案,但即使是稳健的解决方案也可能因流程中相对较小的更改而失效。您可以使用 HtmlAgilityPack 来解析 HTML,在表单的每个子元素中查找您已知的字符串,进行更改,以便它单独查找所有三个词“name”“和”“surname”,并且仅决定如果所有 3 个都存在,它就是一个名字 .. 然后有人会调整它说“名字和姓氏”,但无论如何它都会中断。你必须决定要付出多少努力才能把糟糕的情况做好,我的建议是“不要太多;在你着手用合适的东西取而代之的时候做最少的必要工作,并增加这件事的优先级成为一个一致的痛点
确实,整个系统需要更好地设计,Web 服务,api 调用等,但如果这是您遇到的问题,并且它是准备电子邮件的软件,只有在远程时才会真正崩溃软件更改
我有类似这样的电子邮件模板。
” 美好的一天 personname,
我想推荐一个术语。
姓名:用户将输入值
比率:用户将输入值
公司名称:用户将输入值
地址:用户将输入值
建议费率:用户将输入值
“
这是一个 html 电子邮件模板,我需要检索用户为每个 'question' 输入的值。然后我将采用这些值,它是 'question' 并从中创建一个 html table。
现在,我的问题是我需要找到这些值,但我不知道从 template/larger 字符串中获取未知字符串的好方法。
字符串解析与未知字符串无关;这是关于已知的字符串
您没有 post 您的 html 电子邮件是什么样子,但让我们假设它看起来像这样:
<p>Name and Surname: user will enter value</p>
<p>Rate: user will enter value</p>
如您所见,它是一个非常统一的结构。我们可以拆分 "<p>"
和 "</p>"
:
string parts = body.Split(new []{ "<p>", "</p>"}, StringSplitOptions.RemoveEmptyEntries);
然后我们可以遍历生成的数组以查找我们知道的内容,这样我们就可以检索我们不知道的内容:
foreach(string part in parts)
{
if(part.StartsWith("Name and Surname:"))
name = part.Substring("Name and Surname:".Length).Trim();
else if ....
}
以这种方式解析并不是最稳健的解决方案,但即使是稳健的解决方案也可能因流程中相对较小的更改而失效。您可以使用 HtmlAgilityPack 来解析 HTML,在表单的每个子元素中查找您已知的字符串,进行更改,以便它单独查找所有三个词“name”“和”“surname”,并且仅决定如果所有 3 个都存在,它就是一个名字 .. 然后有人会调整它说“名字和姓氏”,但无论如何它都会中断。你必须决定要付出多少努力才能把糟糕的情况做好,我的建议是“不要太多;在你着手用合适的东西取而代之的时候做最少的必要工作,并增加这件事的优先级成为一个一致的痛点
确实,整个系统需要更好地设计,Web 服务,api 调用等,但如果这是您遇到的问题,并且它是准备电子邮件的软件,只有在远程时才会真正崩溃软件更改