Je suis à la recherche d'un RegEx pour retourner les [n] premiers mots d'un paragraphe ou, si le paragraphe contient moins de [n] mots, le paragraphe complet est retourné .Besoin de RegEx pour retourner le premier paragraphe ou les premiers mots
Par exemple, en supposant que j'ai besoin, au plus, les 7 premiers mots:
<p>one two <tag>three</tag> four five, six seven eight nine ten.</p><p>ignore</p>
Je reçois:
one two <tag>three</tag> four five, six seven
Et même RegEx sur un paragraphe contenant moins de la demande nombre de mots:
<p>one two <tag>three</tag> four five.</p><p>ignore</p>
reviendriez simplement:
one two <tag>three</tag> four five.
Ma tentative le problème a donné lieu à l'expression rationnelle suivante:
^(?:\<p.*?\>)((?:\w+\b.*?){1,7}).*(?:\</p\>)
Cependant, cela renvoie juste le premier mot - « un ». Ça ne marche pas. Je pense que le .*? (après le \ w + \ b) provoque des problèmes.
Où est-ce que je me trompe? Quelqu'un peut-il présenter un RegEx qui fonctionnera?
Pour votre information, j'utilise le moteur regex .Net 3.5 (via C#)
Un grand merci
C'est parfait - Cheers! Je sais qu'il n'y aura jamais de balises p imbriquées, donc RegEx est un bon ajustement. –
Merci pour vos efforts - je l'apprécie vraiment (et merci d'avoir souligné l'oubli avec mon "spec" d'origine) –