如何在RIPGREP中使用通配符进行文件内容搜索
ripgrep 前缀匹配问题解决方案
失效原因说明
ripgrep 默认使用正则表达式语法做内容匹配,你使用的 GHJA* 属于 glob 通配符规则,在正则语法中 * 代表匹配前一个字符的零次或多次出现,因此 GHJA* 只会匹配 GHJ 后接0个或多个A的内容,完全不符合你的搜索需求。
正确搜索命令
根据你的需求(匹配以GHJA开头,后续接任意数量的数字、大小写字母的字符串),直接使用对应正则规则即可:
- 允许匹配到单独的
GHJA(后续无字符),执行命令:rg 'GHJA[0-9a-zA-Z]*' - 要求后续至少有1个字母/数字(避免匹配到单独的GHJA),执行命令:
rg 'GHJA[0-9a-zA-Z]+' - 需要整词匹配(不匹配
XGHJA123这类前缀带其他字符的结果),加上-w参数即可:rg -w 'GHJA[0-9a-zA-Z]+'
注意:Windows cmd 环境执行时需要把单引号替换为双引号。
内容的提问来源于stack exchange,提问作者Emmanuel Goldstein
相关产品推荐
相关产品推荐

