# 修复 m_btn_xxx.title 模式匹配 - Product Requirement Document

## Overview
- **Summary**: 修复 CSharpStringExtractor 中 m_btn_xxx.title 模式的匹配逻辑，确保只有严格以 m_btn_ 开头的变量才被特殊处理
- **Purpose**: 确保测试用例 should handle m_btn_xxx.title = yyy 能够通过
- **Target Users**: 使用 CSharpStringExtractor 的开发者

## Goals
- 修复 m_btn_xxx.title 模式的正则表达式匹配
- 确保只有严格以 m_btn_ 开头的变量才被特殊处理
- 保持 xxx.text 模式的现有功能不变
- 所有现有测试用例 100% 通过

## Non-Goals (Out of Scope)
- 不修改其他功能的实现
- 不添加新的测试用例

## Background & Context
当前测试用例 should handle m_btn_xxx.title = yyy 失败，原因是：
- am_btn_buy.title 被错误地识别为需要加 .TR()
- m_btn1_buy.title 被错误地识别为需要加 .TR()
- 只有严格以 m_btn_ 开头的变量（如 m_btn_buy, m_btn_wwefHwref, m_btn_fxx_wf）才应该被特殊处理

## Functional Requirements
- **FR-1**: 修复 TITLE_ASSIGNMENT_PATTERN 正则表达式
- **FR-2**: 确保只有严格以 m_btn_ 开头的变量才被识别为特殊赋值
- **FR-3**: 保持 xxx.text 模式的功能完全不变
- **FR-4**: 所有现有测试用例通过

## Non-Functional Requirements
- **NFR-1**: 所有现有测试用例必须通过
- **NFR-2**: 代码风格保持一致

## Constraints
- **Technical**: 使用 TypeScript 语言，遵循现有代码风格
- **Business**: 不影响现有功能

## Assumptions
- 测试用例的预期结果是正确的
- xxx.text 模式的现有实现是正确的

## Acceptance Criteria

### AC-1: am_btn_buy.title 不加 .TR()
- **Given**: 包含 am_btn_buy.title 赋值语句的代码
- **When**: extractStrings 方法被调用
- **Then**: am_btn_buy.title 的值不应该被添加 .TR()
- **Verification**: `programmatic`

### AC-2: m_btn1_buy.title 不加 .TR()
- **Given**: 包含 m_btn1_buy.title 赋值语句的代码
- **When**: extractStrings 方法被调用
- **Then**: m_btn1_buy.title 的值不应该被添加 .TR()
- **Verification**: `programmatic`

### AC-3: m_btn_buy.title 加 .TR()
- **Given**: 包含 m_btn_buy.title 赋值语句的代码
- **When**: extractStrings 方法被调用
- **Then**: m_btn_buy.title 的值应该被添加 .TR()
- **Verification**: `programmatic`

### AC-4: 所有现有测试通过
- **Given**: 修改后的代码
- **When**: 运行完整测试套件
- **Then**: 所有测试用例都应该通过
- **Verification**: `programmatic`

## Open Questions
- 无
