java性能问题-正则表达式VS内部String方法

标签 java android regex

我遇到以下问题: 我的应用程序中的某处有一些字符串需要检查 - 检查该字符串是否包含与 " " 不同的字符(空白),/n/r 例如:

  • " g" - 包含
  • " /n " - 不包含
  • " " - 不包含

我想在 reg 表达式中执行此操作,但我不想使用常见模式 .*[a-zA-Z0-9]+.* .相反,我想要类似 .*[!" ""/n"/r"] 的东西。 (不同于 " " "/r""n" 的每个字符)。

我的问题是

  1. 我不知道这个模式是否有效(上面的模式不起作用)
  2. 我不确定这是否会比使用更快 常规字符串方法。

最佳答案

首先,你的意思是\n\r ,在 Java 中,这意味着使用 \\n 转义反斜杠。和\\r .

其次,如果您只是想捕获任何非空白字符,只需使用模式 \\S*[^\\s]\S是非空白,或者 \s是空格且 [^<charset>]意思是“匹配除其中之一之外的任何内容。”

第三,如果这是重复检查,请确保仅编译正则表达式一次,然后多次使用它。

第四,遵循通常的分析策略。首先,这是您应用程序中的关键 strip 吗?如果是这样,那么就对自己进行基准测试。

关于java性能问题-正则表达式VS内部String方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14221257/

相关文章:

java - NiFi开发自定义处理器: import org. apache.nifi.processors错误

java - Perl 会成为这种图像处理的瓶颈吗?

java - 方法可以接收 Array 或 Iterable 吗?

带有日志头的正则表达式模式

java - 在缓存中存储 ListView 图像

java - android手机 hibernate 时保持wifi连接

android - 似乎在测试运行时没有调用 setup()

android - 我正在尝试更改菜单项的背景

php - 正则表达式 (PHP) => 大于或不大于

regex - vim:替换特定字符,但仅在第 n 次出现后