当前位置: 首页 > 知识库问答 >
问题:

查找word文档中两个字符之间的所有字符串

谭学名
2023-03-14

我正在使用DocX库来替换word文档中的文本。我想以某种方式找到模板docx文件中“[]”之间的所有字符串,例如[Name]、[LastName]、[Date]等...并将其替换为我以前加载到datagridview中具有相同列名(name、LastName、Date)的值。以下是我目前掌握的信息:

foreach (DataGridViewRow dataGridViewRow in list)
{
    try
    {
        string template = txtUcitajTemplate.Text;
        string text2 = "Aneksi";
        if (!System.IO.Directory.Exists(text2))
        {
            System.IO.Directory.CreateDirectory(text2);
        }
        string path = string.Format("{0}.docx", dataGridViewRow.Cells["Name"].Value.ToString());
        string path2 = System.IO.Path.Combine(text2, path);

        using (DocX document = DocX.Load(template))
        {
            string patternstart = Regex.Escape("[");
            string patternend = Regex.Escape("]");
            string regexexpr = patternstart + @"(.*?)" + patternend;
            // document.ReplaceText(regexexpr, dataGridViewRow.Cells[0].Value.ToString());
            // document.ReplaceText(regexexpr, dataGridViewRow.Cells[1].Value.ToString());
            var regex = new regex("[.*?]");
            var matches = regex.matches(input); //your matches: name, name@gmail.com
            foreach (var match in matches) // e.g. you can loop through your matches like this
            {
                document.ReplaceText(match.ToString(), dataGridViewRow.Cells["Name"].Value.ToString());
                document.ReplaceText(match.ToString(), dataGridViewRow.Cells["LastName"].Value.ToString());
            }
            document.SaveAs(path2);                     
        }
    }
    catch (System.Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

共有1个答案

昌山
2023-03-14

尝试更改正则表达式,看起来这里的这个问题基本上是在做与您正在尝试的相同的事情(关于查找两个字符之间的值)。

正则表达式查找包含在两个字符之间的字符串,同时排除分隔符

如果使用该前提,则遍历所有匹配项。我怀疑您将能够改变您的代码来实现您试图实现的目标。

 类似资料:
  • 问题内容: 我正在尝试 使用循环从两个不同的用户输入中打印常用字母。(我需要使用for循环来完成它。)我遇到了两个问题:1.我的语句“ If char not in output …”没有提取唯一值。2.输出为我提供了单个字母列表,而不是单个字符串。我尝试分割输出,但是分割遇到类型错误。 问题答案: 您正在尝试执行“设置相交”。Python有 相同的方法。您可以将其用于您的用例,例如: 将返回字符

  • 问题内容: 如何找到两个子字符串之间的字符串? 我当前的方法是这样的: 但是,这似乎效率很低而且不合Python。什么是做这样的更好的方法? 忘了提:该字符串可能无法启动,并最终和。他们之前和之后的字符可能更多。 问题答案:

  • 问题内容: 给定两个相等长度的字符串,是否有一种优雅的方法来获取第一个不同字符的偏移量? 显而易见的解决方案是: 但这对于如此简单的任务而言似乎并不正确。 问题答案: 您可以使用按位XOR()的一个不错的属性来实现此目的:基本上,当您将两个字符串异或时,相同的字符将变为空字节()。因此,如果我们对两个字符串进行异或运算,我们只需要使用以下命令找到第一个非空字节的位置: 这里的所有都是它的。因此,让

  • 我有一个这样的字符串: 我正在尝试获取任何显示为title(title=“anything here”)的内容。我已经尝试过了,但无法正常工作。

  • 我在Elasticsearch中存储了一个日志文件,其中一个文档是文件的单行。消息块以某些关键字开始和结束。我想获取包含这些关键字的文档之间的所有文档。有没有办法利用Elasticsearch中的范围查询/范围过滤器来查询文本字段? 示例日志文件: 。。 我想查询“关键字1”和“关键字2”之间的所有文档,包括包含关键字本身的文档。假设有多个这样的块具有“关键字1”和“关键字2”。 此外,我正在用一

  • 问题内容: 我正在尝试从Java字符串中找到所有三个字母子字符串。 例如,从字符串“ example string”中,我应该得到“ exa”,“ xam”,“ amp”,“ mpl”,“ ple”,“ str”,“ tri”,“ rin”,“ ing”。 我尝试使用Java正则表达式“([[a-zA-Z]){3}”,但仅得到“ exa”,“ mpl”,“ str”,“ ing”。 有人可以告诉我