我正在使用带有占位符标签([[tagname]])的文本编辑器编写文档创建器。我需要能够将 HTML 文本发送给阅读器,该阅读器将找到每个占位符并将其替换为 API 调用的响应文本。我让阅读器服务接受 HTML 文本,并尝试拆分 (" ") 来分隔每个单词,通过 for 循环运行单词并调用 ("[[", "]] 上的 .Between 服务扩展方法") 来查找占位符。然后,我对其找到的占位符进行切换,并调用阅读器服务中的方法来进行 API 调用。问题是最终结果是一个空字符串。我不确定我错过了什么。 public string ReadForm(FormViewModel formModel) { var form = ""; var formText = formModel.FormText; formText.Split(" "); for (int i = 0; i < formText.Length; i++) { var formTextIndex = formText[i].ToString(); var formTagItem = formTextIndex.Between("[[", "]]"); if (formTagItem.ToString() != null) { switch (formTagItem) { case "placeholder1": formTagItem = GetItems1(formModel.ID); form += $"{formTagItem} "; break; case "placeholder2": formTagItem = GetItems2(formModel.ID); form += $"{formTagItem} "; break; case "placeholder3": formTagItem = GetItems3(formModel.ID); form += $"{formTagItem} "; break; case "placeholder4": formTagItem = GetItems4(formModel.ID); form += $"{formTagItem} "; break; default: form += $"{formTagItem} "; break; } } else { form += $"{formText[i]} "; } } return form; }我对表单的预期结果是占位符将替换为返回值,然后在 HTML 文本中替换。
1 回答
米琪卡哇伊
TA贡献1998条经验 获得超6个赞
查找/替换可能就是您正在寻找的。
使用语句:
using System.Text.RegularExpressions;
方法:
public string ReadForm(FormViewModel formModel)
{
string formText = formModel.FormText;
formText = formText.Replace("[[placeholder1]]", GetItems1(formModel.ID));
formText = formText.Replace("[[placeholder2]]", GetItems2(formModel.ID));
formText = formText.Replace("[[placeholder3]]", GetItems3(formModel.ID));
formText = formText.Replace("[[placeholder4]]", GetItems4(formModel.ID));
formText = Regex.Replace(formText, @"\[\[(.*?)\]\]", "$1");
return formText;
}
Regex.Replace完成默认块的功能:用标签内的名称替换标签内的任何内容。
- 1 回答
- 0 关注
- 76 浏览
添加回答
举报
0/150
提交
取消