def _extract_research_areas(self, text: str) -> List[ResearchFocus]:
        """Extract research areas with enhanced validation"""
        areas = []
        for pattern in self.patterns['research_gaps']:
            gap_match = re.search(pattern, text)
            if gap_match:
                sections = re.split(r'\n\s*\d+[\.)]\s+', text[gap_match.end():])
                sections = [s for s in sections if s.strip()]

                for section in sections:
                    focus = self._parse_research_focus(section)
                    if focus and self._is_valid_focus(focus):
                        areas.append(focus)
                break
        return areas
Extract research areas with enhanced validation
strategic_analysis_parser.py