首页 > 后端开发 > Golang > 正文

如何在 Go 的正则表达式引擎中匹配没有特定文件扩展名的字符串?

Susan Sarandon
发布: 2024-10-26 07:35:30
原创
432 人浏览过

How Can I Match Strings Without Specific File Extensions in Go's Regex Engine?

理解 Go 正则表达式引擎中的否定集

在 Go 中,标准库的正则表达式引擎(RE2)缺乏对环视的支持,包括负前瞻运算符?!如提供的正则表达式中所使用的:

^(.*\.(?!(htm|html|class|js)$))?[^.]
登录后复制

此正则表达式旨在匹配不以特定文件扩展名结尾的字符串。然而,在 Go 中,由于缺乏环视支持,它无法按预期运行。

替代解决方案

除了依赖否定集之外,还有替代方案在 Go 中处理这种情况的解决方案:

  1. 直接验证文件扩展名:
    将否定集替换为直接检查所需的文件扩展名:

    re.MustCompile(`(type1|type2)_(\d+)\.(csv|ini)`)
    登录后复制
  2. 删除尾随句点:
    如果目标是确保字符串以三字符文件扩展名结尾,没有任何其他字符,则简化表达式可以使用:

    re.MustCompile(`\.\w{3}$`)
    登录后复制

匹配行为

通过删除否定集或使用替代语法,Go 的正则表达式引擎将准确地按预期匹配所需的字符串。

以上是如何在 Go 的正则表达式引擎中匹配没有特定文件扩展名的字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!