HTML регулярное выражение ведущих и конечных слов

У меня есть ощущение, что я действительно упускаю что-то очевидное здесь, но я ищу регулярное выражение, которое будет соответствовать содержанию жирного тега плюс слова непосредственно перед и после тегов.

Так:

"start this string <b>is the text</b> we need end"

будет соответствовать

"string <b>is the text</b> we"

Я могу добраться до тегов и их содержимого с <b\s*>(.*?|[^>\s]+)<\/b\s*> но я не могу пригвоздить начальные и конечные слова.

Любая помощь будет оценена.

1 ответ

Решение

Попробуйте это (на основе вашего регулярного выражения):

/\w+\s*<b\s*>(?:.*?|[^>\s]+)<\/b\s*>\s*\w+/

Смотрите это на тестере Rubular Regex

Но, возможно, так будет лучше:

/\w+\s*<b\s*>.*?<\/b\s*>\s*\w+/

Смотрите это на тестере Rubular Regex

Другие вопросы по тегам