String.contains 的 java 正则表达式

标签 java regex

我正在寻找如何创建一个正则表达式,它 100% 等同于 String 类中的“contains”方法。基本上,我有数千个要搜索的短语,据我了解,出于性能原因,编译正则表达式一次并多次使用它比调用“mystring.contains(testString)”要好得多在不同的“mystring”值上再次使用相同的 testString 值。

编辑:扩展我的问题...我将有数千个“testString”值,我不想将它们转换为正则表达式机制可以理解的格式。我只是希望能够直接传入用户输入的短语,并查看是否在“mystring”恰好包含的任何值中找到它。 “testString”永远不会改变它的值(value),但会有成千上万个,所以这就是为什么我想创建匹配器对象并一遍又一遍地重新使用它等等。(显然我的正则表达式技能不合格)

最佳答案

您可以使用 LITERALcompiling 时标记您的模式告诉引擎您正在使用文字字符串,例如:

 Pattern p = Pattern.compile(yourString, Pattern.LITERAL);

但是您真的确定这样做然后重用结果比仅仅使用 String#contains 更快吗?足以让复杂性变得值得吗?

关于String.contains 的 java 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7850778/

相关文章:

c# - Star - 使用正则表达式在字符串中查找字符 *

java - 当我在 groovy 中使用正则表达式替换时,如何解决 java.lang.StackOverflowError 问题?

java - 使用格式将字符串转换为数字

java - 自动更新软件的设计

java - 为什么有时在 Java 中不需要声明 "new"对象?

java - 从字符串中提取电话号码

java - Android Studio 二次方程NaN

java json 一个变量有多个值

ruby-on-rails - 用于拆分用户和日期文本输入的 Ruby 正则表达式

java - 使用正则表达式提取捕获组