Ich bin für eine RegEx Suche entweder die erste [n] Wörter in einem Absatz oder zurück, wenn der Absatz weniger als [n] Worte, die komplette Absatz zurückgegeben .RegEx benötigen Absatz oder erste n Worte zurück
Zum Beispiel unter der Annahme, ich brauche, höchstens die ersten 7 Worte:
<p>one two <tag>three</tag> four five, six seven eight nine ten.</p><p>ignore</p>
Ich würde erhalten:
one two <tag>three</tag> four five, six seven
Und das gleiche RegEx auf einem Absatz, das weniger als die angeforderte Anzahl der Wörter:
<p>one two <tag>three</tag> four five.</p><p>ignore</p>
einfach zurückkehren würde:
one two <tag>three</tag> four five.
Mein Versuch, das Problem ergab folgende RegEx:
^(?:\<p.*?\>)((?:\w+\b.*?){1,7}).*(?:\</p\>)
Dies ist jedoch nur das erste Wort gibt - "Eins". Es funktioniert nicht. Ich denke der .*? (Nach dem \ w + \ b) Probleme verursacht.
Wohin gehe ich falsch? Kann jemand eine RegEx präsentieren, die funktioniert?
FYI, ich bin mit Regex-Engine .Net 3.5 (via C#)
Vielen Dank
Das ist perfekt - Prost! Ich weiß, dass es nie verschachtelte p Tags geben wird, so RegEx ist eine gute Passform. –
Danke für Ihre Bemühungen - ich schätze es sehr (und danke, dass Sie das Versehen mit meiner ursprünglichen "Spezifikation" aufgezeigt haben) –