Если атрибут class
является единственным атрибутом требуемых элементов div
, а значение class
всегда имеет указанную структуру (фиксированная blah
и затем user_
foobar
), вы можете использовать это регулярное выражение:
<div\s+class\s*=\s*"blah user_([^"\s]+)
В противном случае попробуйте это регулярное выражение:
<div\s+(?:[^>"']+|"[^"]*"|'[^']*')*\bclass\s*=\s*"blah user_([^"\s]+)
Выражение (?:[^>"']+|"[^"]*"|'[^']*')*
также учитывает, что в качестве значения атрибута допускается простой >
.
Редактировать Оптимизировано регулярное выражение с предварительным утверждением для уменьшения обратного отслеживания:
<div\s+(?:(?:(?!class)[^>"']+(?:"[^"]*"|'[^']*')?)\s+)*class\s*=\s*"blah user_([^"\s]+)