[英]Regular expression to find <character> tags
需要正则表达式的帮助。 我正在尝试使用正则表达式和preg_match_all
查找块<character>...</character>
。 这是我的数据的样子:
<character>
杜塞尔多夫
杜塞爾多夫
<div class="hp">dùsàiěrduōfū<div class="hp">dkfjdkfj</div></div>
<div class="tr"><span class="green"><i>г.</i></span> Duesseldorf (<i>Deutschland</i>)</div>
<div class="tr"></div>
</character>
<character>
我, 是谁
<div class="hp">текст</div>
<div class="tr">some text in different languages</div>
</character>
我尝试了\\<character\\>.*\\<\\/character>
但是不幸的是它没有用。 有什么建议么?
除非你在枪口下使用正则表达式来做到这一点要求,DOM文档会更准确。
<?php
$dom = new DOMDocument;
$dom->loadXML($data);
$character_nodes = $dom->getElementsByTagName('character');
// use $character_nodes...
?>
如果使用函数preg
系列,则正则表达式应为:
/\<character>(.*?)\<\/character>/s
非贪心算子?
将阻止您仅从第一个<character>
开始到最后一个</character>
结束一个匹配项。/ /s
标志将使您的点与换行符匹配。
尝试
<character>(.*?)<\/character>
问号是一个贪婪的限定词,表示它将与一个尽可能短的字符串匹配。 同样,<和>也不需要转义。
您可能需要使用“ / u”选项来正确处理UTF8文本。
http://php.net/manual/zh/reference.pcre.pattern.modifiers.php
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.