<ac:image ac:height="400">
<ri:attachment ri:filename="screenshot4.png"></ri:attachment>
</ac:image>
结果应为 screenshot4.png
答案 0 :(得分:3)
虽然可以使用正则表达式以当前形式从XML中成功提取文件名,但这不是一个正确的解决方案。您无法正确解析带有正则表达式的XML或HTML。
以下是使用SimpleXML的示例。
$xml = <<<XML
<ac:image ac:height="400">
<ri:attachment ri:filename="screenshot4.png"></ri:attachment>
</ac:image>
XML;
$doc = new SimpleXMLElement($xml, LIBXML_NOERROR);
$filename = (string) $doc->{'ri:attachment'}->attributes()['ri:filename'];
var_dump($filename);
<强>输出:强>
string(15)“screenshot4.png”
不需要正则表达式。
答案 1 :(得分:-2)
[\w]*\.[\w]*
将是一个非常基本的版本。解释,因为你不想学习它:
\w
匹配任何单词char(a-z,A-Z和numerics)*
量词匹配零个或多个字符\.
逃脱单点所以这个RegEx会查找一个字符串,其中包含一个字母和数字,后跟一个点,并以另一个字母和数字序列结束。
希望有帮助...
修改强>
在您的情况下使用RegEx(XML等),可能会返回错误的匹配...