J'ai une question sur les expressions régulières php. . .
迷茫
迷茫 2017-05-16 13:09:53
0
4
455

Il existe des besoins particuliers. Une expression est nécessaire pour extraire les données de N champs en HTML
Par exemple

<p class="test">
    <p class="titre">xxx</p>
    <p class="xas"></p><pclass="asd"></p>
    <p class="pic">xxx</p>
</p>
<p class="test">
    <p class="titre">xxx</p>
    <p class="xas"></p><pclass="asd"></p>
    <p class="pic">xxx</p>
</p>

Nous devons extraire les données du titre et de l'image du HTML. Comment écrire l'expression régulière ?
Le <p class="xas"></p><pclass="asd"></p> au milieu est un contenu différent, mais ce contenu est inutile et il n'est pas nécessaire pour l'explorer
Je ne fais que commencer. S'il vous plaît, donnez-moi quelques conseils. Merci

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

répondre à tous(4)
Ty80

Vous n'êtes pas obligé d'utiliser des expressions régulières, il existe quelque chose qui s'appelle phpquery

我想大声告诉你
let str = `
    <p class="test">
        <p class="title">xxx</p>
        <p class="xas"></p><pclass="asd"></p>
        <p class="pic">xxx</p>
    </p>
    <p class="test">
        <p class="title">xxx</p>
        <p class="xas"></p><pclass="asd"></p>
        <p class="pic">xxx</p>
    </p>
`

let results = str.match(/(title|pic)">.*?</g).map(e=>e.replace('">', ':')).map(e=>e.replace('<', ''))

Le résultat est :

// results:
[ 'title:xxx', 'pic:xxx', 'title:xxx', 'pic:xxx' ]

Supplément : 
Je n'ai pas vu clairement que la question mentionnait PHP. Je ne connais pas grand chose en PHP. C'est écrit en js. Vous pouvez simplement prendre la partie habituelle.

Peter_Zhu

Téléchargez simplement le code

$re = '/(title|pic).*?>([^<]+)/';
$str = '<p class="test">
    <p class="title">xxx</p>
    <p class="xas"></p><pclass="asd"></p>
    <p class="pic">xxx</p>
</p>
<p class="test">
    <p class="title">xxx</p>
    <p class="xas"></p><pclass="asd"></p>
    <p class="pic">xxx</p>
</p>';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

//演示输出的结果,你可以根据你的需求,从$matches中拿到你想要的xxx部分。
var_dump($matches);
淡淡烟草味

Ce type de performance est très médiocre -.-. Il est toujours fiable d'utiliser js pour l'obtenir à la réception.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal