如何在 java 中实现类似“LIKE”运算符的 SQL?

新手上路,请多包涵

我需要 java 中的比较器,它具有与 sql ‘like’ 运算符相同的语义。例如:

 myComparator.like("digital","%ital%");
myComparator.like("digital","%gi?a%");
myComparator.like("digital","digi%");

应该评估为真,并且

myComparator.like("digital","%cam%");
myComparator.like("digital","tal%");

应该评估为假。任何想法如何实现这样的比较器,或者有人知道具有相同语义的实现吗?这可以使用正则表达式来完成吗?

原文由 Chris 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 893
1 个回答

.\* 将匹配正则表达式中的任何字符

我认为 java 语法是

"digital".matches(".*ital.*");

对于单个字符匹配,只需使用一个点。

 "digital".matches(".*gi.a.*");

并匹配一个实际的点,将其转义为斜杠点

\.

原文由 Bob 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题