java - 使用正则表达式的性能开销/改进

标签 java regex string performance full-text-search

如果我需要检查文本(字符串)中是否存在单词 A 或单词 B,如果我这样做会有性能差异:

if(text.contains(wordA) || text.contains(wordB))

要使用一些正则表达式来搜索字符串?
是否依赖正则表达式格式?
还是只是品味问题?

更新:
如果 text.contains(wordA)false,则 text.contains(wordB) 将被计算。
这意味着 contains 将被调用两次。

我在想,就性能而言,正则表达式是否比调用 contains 两次更好。

最佳答案

您的代码清楚地表达了您的意图,比正则表达式更具可读性,而且速度可能也更快。

无论如何,您的这部分代码导致任何重大性能问题的可能性非常小。所以我不会在这里担心性能,而是担心可读性和可维护性。

关于java - 使用正则表达式的性能开销/改进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8938071/

相关文章:

regex - 为什么我的 sed 命令有时无法使用 r 标志

棋盘上的 java2D 棋子拖放

java - 来自不同 JAR 的 Spring Bean XML 声明

c# - 从文本文件中删除一些特殊的词

c# - 字符串中只允许单一类型的标记

python - 如果包含在括号中,则替换列的字符串值

java - 对于具有多个单词的输入字符串 - 检查它们中的任何一个是否以其他字符串开头的最有效方法是什么?

java - 选中时处理复选框

java - 无法在 IntelliJ IDEA 中的 Maven 项目内运行 JUnit 测试

asp.net - 正则表达式允许文本、一些特殊字符并保持低于指定的长度