В зависимости от вашего определения слова, вы можете избежать использования \b
, чтобы соответствовать началу слова.
Что касается проверки двух результатов, гораздо проще сделать это с помощью двух совпадений.
/\bsun/i && /\bbat/i # Engines without implicit anchoring
/.*\bsun.*/i && /.*\bbat.*/i # Engines with implicit anchoring
Это может быть сделано, если ваш движок регулярных выражений поддерживает просмотр нулевой ширины.
/^(?=.*\bsun)(?=.*\bbat)/si # Engines without implicit anchoring
/^(?=.*\bsun).*\bbat/si # Engines without implicit anchoring
/(?=.*\bsun)(?=.*\bbat).*/si # Engines with implicit anchoring