繁体   English   中英

正则表达式查找 <character> 标签

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM