Я ищу RegEx для возврата либо первых [n] слов в абзаце, либо, если абзац содержит меньше [n] слов, возвращается полный абзац.
Например, предполагая, что мне нужно, максимум, первые 7 слов:
<p>one two <tag>three</tag> four five, six seven eight nine ten.</p><p>ignore</p>
Я бы получил:
one two <tag>three</tag> four five, six seven
И тот же RegEx для абзаца, содержащего меньше запрошенного количества слов:
<p>one two <tag>three</tag> four five.</p><p>ignore</p>
Просто вернется:
one two <tag>three</tag> four five.
Моя попытка решить проблему привела к следующему RegEx:
^(?:\<p.*?\>)((?:\w+\b.*?){1,7}).*(?:\</p\>)
Однако, это возвращает только первое слово - «один». Не работает Я думаю .*? (после \ w + \ b) вызывает проблемы.
Куда я иду не так? Кто-нибудь может представить RegEx, который будет работать?
К вашему сведению, я использую движок Reg .Net 3.5 (через C #)
Большое спасибо