如何检查正则表达式是不是未能在 docx 文件中找到搜索字符串

Posted

技术标签:

【中文标题】如何检查正则表达式是不是未能在 docx 文件中找到搜索字符串【英文标题】:How to check if a regular expression failed to find a search string in docx file如何检查正则表达式是否未能在 docx 文件中找到搜索字符串 【发布时间】:2018-03-08 06:40:16 【问题描述】:

我正在使用

using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(document, true))

    using (StreamReader sr = new StreamReader(wordDoc.MainDocumentPart.GetStream(), System.Text.Encoding.UTF8))
                
                    docText = sr.ReadToEnd();
                
                Regex regexText = new Regex(search, RegexOptions.IgnoreCase);                      
                docText = regexText.Replace(docText, replace);

如何检查 Regex regexText 是否找到搜索字符串 search

【问题讨论】:

var newDocText = regexText.Replace(docText, replace); if (newDocText != docText) ... 这是做什么的?这不只是用新的 var 复制 docText = regexText.Replace(docText, replace); 并比较两者吗?这个我不太明白。 Replace 可能会更改文本。因此,测试将输入文本与可能更改的文本进行比较。 哦,好的。我知道了。谢谢! 【参考方案1】:

解决方案是运行另一个 regex.Replace,但这次使用第一个返回的字符串,如下所示:

Regex regexText = new Regex(search, RegexOptions.IgnoreCase);
docText = regexText.Replace(docText, replace);

var newDocText = regexText.Replace(docText, replace);
if (newDocText != docText) 
    ////They don't match it succeeded. Do something....

【讨论】:

以上是关于如何检查正则表达式是不是未能在 docx 文件中找到搜索字符串的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式检查链接是不是指向文件

检查行是不是匹配正则表达式

有啥方法可以检查文件是不是存在,文件名包含正则表达式

如何在 SQL Server 中使用正则表达式检查字符串是不是为数字?

在通道正则表达式中找不到 sqlfetch 表

如何检查字符串是不是与 node.js 中的任何正则表达式数组匹配?