首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为Lucene 8.2编写IP地址regex查询?

如何为Lucene 8.2编写IP地址regex查询?
EN

Stack Overflow用户
提问于 2019-09-30 20:28:57
回答 1查看 1.4K关注 0票数 1

当我显示query.toString()时,我使用标准分析器和query.toString类

content:/(?:(?:250-5|20-4|10-9|1-90-9).){3}(?:250-5|20-4|10-9|1-90-9)/

content是我的字段的名称。

这与包含行IP地址的文档不匹配: 123.45.67.89

我的霸王龙怎么了?还是我做错了什么?

编辑:如果我将查询更改为content:/123.45.67.89/,它将匹配。

Edit2:我是不是在逃避'.‘不对?正则表达式试图匹配文字'.',而不是通配符任何字符形式的'.‘。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-01 14:19:58

您需要将非捕获组转换为捕获组,因为Lucene正则发动机不支持前者:

代码语言:javascript
运行
复制
content:/(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}/

注意,我将(<part>){3}(part)替换为(part)(<part>){3}语法,因为这是regex中的最佳实践,为了尽可能地将量化的子模式放置在右边,它减少了回溯。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58174902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档