fix(decision+news): correct Unicode regex escaping & precompile telegram patterns

## Critical Fix: Unicode Regex Escaping

### decision/engine.go
-  WRONG: `regexp.MustCompile(`[\u200B...]`)` (raw string, no escaping)
-  FIXED: `regexp.MustCompile("[\u200B...]")` (double quotes, proper Unicode)

**Impact**: Backticks don't parse \uXXXX escape sequences in Go!
- Raw string: matches literal text "\u200B" (useless)
- Double quotes: matches Unicode characters U+200B, U+200C, U+200D, U+FEFF (correct)

### news/provider/telegram/telegram.go
- Move regex patterns to global precompiled variables
- Eliminates repeated compilation in stripHTML()

## Performance
- Regex compilation: O(n) → O(1)
- stripHTML() now uses precompiled patterns

## Testing
 Compilation successful
 Unicode characters properly matched
This commit is contained in:
ZhouYongyou
2025-11-05 01:02:49 +08:00
parent dcfc997b59
commit db7c0359f4
2 changed files with 17 additions and 18 deletions

View File

@@ -22,7 +22,7 @@ var (
reJSONArray = regexp.MustCompile(`(?is)\[\s*\{.*?\}\s*\]`)
reArrayHead = regexp.MustCompile(`^\[\s*\{`)
reArrayOpenSpace = regexp.MustCompile(`^\[\s+\{`)
reInvisibleRunes = regexp.MustCompile(`[\u200B\u200C\u200D\uFEFF]`)
reInvisibleRunes = regexp.MustCompile("[\u200B\u200C\u200D\uFEFF]")
)
// PositionInfo 持仓信息