fix: detect bare pipe alternation as regex in grep_knowledge_files (#26795)
is_regex_pattern only recognized the BRE-escaped form \| and not a bare |, so a pattern like "Jornak|Silverlake|Orissa" was treated as one literal string (including the pipe characters) and silently returned no matches. This contradicted the tool docstring, which explicitly advertises "error|warn" as an auto-detected regex example, and misled models into concluding the searched terms were absent from the file. Checking for a bare | also covers the escaped form, since \| contains |, and normalize_regex already converts escaped pipes before compilation. Literal patterns without regex metacharacters are unaffected. Fixes #26781
This commit is contained in:
1 parent
315a6b5995
commit
504e724fde
1 file changed
+2
-2
@@ -33,9 +33,9 @@ MAX_GREP_MATCHES = 50
|
|||||||
|
|
||||||
|
|
||||||
def is_regex_pattern(pattern: str) -> bool:
|
def is_regex_pattern(pattern: str) -> bool:
|
||||||
"""Detect if a pattern looks like regex (\|, .*, .+, \d, \w, \s, [...])."""
|
"""Detect if a pattern looks like regex (|, .*, .+, \d, \w, \s, [...])."""
|
||||||
return (
|
return (
|
||||||
'\|' in pattern
|
'|' in pattern
|
||||||
or '.*' in pattern
|
or '.*' in pattern
|
||||||
or '.+' in pattern
|
or '.+' in pattern
|
||||||
or '.?' in pattern
|
or '.?' in pattern
|
||||||
|
|||||||
Reference in new issue
Block a user