正则表达式否定集在 Go 中不起作用
用户遇到了带有否定集的正则表达式无法正常工作的问题预计在 Go 中。该表达式在多个在线正则表达式解析器上进行了验证,旨在匹配不以特定文件扩展名结尾的字符串。
^(.*\.(?!(htm|html|class|js)$))?[^.]
但是,在 Go 中实现此表达式会产生不同的结果。用户简化了表达式以删除否定集并获得所需的匹配项。
理解问题
Go 的正则表达式引擎 RE2 不支持像负前瞻?!用在原来的表达中。缺乏环顾支持导致否定集无效。
解决方案
要确保字符串以三字符文件扩展名结尾,用户可以简化表达式为:
\.\w{3}$
此表达式匹配文字句点,后跟三个单词字符(字母数字和下划线),最后是字符串结尾。它有效地实现了与原始表达式相同的结果,但不依赖环视运算符。
以上是为什么我的正则表达式否定集在 Go 中不起作用?的详细内容。更多信息请关注PHP中文网其他相关文章!