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>
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;