我正在寻找如何创建一个正则表达式,它 100% 等同于 String 类中的“contains”方法。基本上,我有数千个要搜索的短语,据我了解,出于性能原因,编译正则表达式一次并多次使用它比调用“mystring.contains(testString)”要好得多在不同的“mystring”值上再次使用相同的 testString 值。
编辑:扩展我的问题...我将有数千个“testString”值,我不想将它们转换为正则表达式机制可以理解的格式。我只是希望能够直接传入用户输入的短语,并查看是否在“mystring”恰好包含的任何值中找到它。 “testString”永远不会改变它的值(value),但会有成千上万个,所以这就是为什么我想创建匹配器对象并一遍又一遍地重新使用它等等。(显然我的正则表达式技能不合格)
最佳答案
您可以使用 LITERAL
当 compiling 时标记您的模式告诉引擎您正在使用文字字符串,例如:
Pattern p = Pattern.compile(yourString, Pattern.LITERAL);
但是您真的确定这样做然后重用结果比仅仅使用 String#contains
更快吗?足以让复杂性变得值得吗?
关于String.contains 的 java 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7850778/