xml图像中的正则表达式

本文关键字:正则表达式 图像 xml | 更新日期: 2023-09-27 18:16:51

我想有一个代码,这将在xml中搜索图像文件名,并在图像文件夹中找到它。我已经使用了正则表达式。

xptrImages = Regex.Matches(abridgedXMLContent, "(?<=<xp t='").+?(?='"/>)", RegexOptions.IgnoreCase | RegexOptions.Singleline);
if (xptrImages != null)
                    {
                        foreach (Match gif in xptrImages)
                        {
                            if (!File.Exists(Path.Combine(jobPath_ill, gif.Value)))
                            {
                                ErrorModel errorModel12 = new ErrorModel()
                                {
                                    ErrorMessage = string.Concat("No actual image found -- ", gif.Value),
                                    LineData = string.Concat("<xp t=", gif.Value, "/>")
                                };
                                err.Add(errorModel12);
                            }
                        }
                    }

但是我的正则表达式没有返回给我一个消息,如果他们没有在xml中找到图像文件名。我的正则表达式正确吗?我的目标是xml中的image001.gif,见下文。

<p><xp t="image001.gif"/></p>

xml图像中的正则表达式

XPath是可行的方法,是的——您可以直接检索//xp/@t

如果你想使用正则表达式,一定要转义正则表达式中的正斜杠/。例如在regex101.

(?<=<xp t='").+?(?='"'/>)

试试这个

            string input = "<p><xp t='"image001.gif'"/></p>";
            string pattern = "='"(?'filename'[^''.]+''.(gif|jpg))'"";
            string filename = Regex.Match(input, pattern).Groups["filename"].Value;​