我已经设置了一个 Java 正则表达式来执行下面的替换
Pre-substitution | Post-substitution
=============================
GOSP_vhqjvfec | GOSP
INWMDN_10qkva | INWMDN
OS_INT_ihdqivmf0 | OS_INT
RSO15_1_%I_0gkuns | RSO15_1
AUDIT124_%I_qkbfn1 | AUDIT124
==============================
我用过这个正则表达式
regular exp -> (.*?)_%.*|(.*)_.*
substitution -> $1$2
我想知道有没有更好的方法呢?
最佳答案
您可以使用这个更简单的正则表达式:
str = str.replaceFirst("_(%\\S*|[^_\\s]+)\\b", "");
即匹配下划线后跟 2 个交替:
%
和 0 个或多个非空格字符- 1 个或多个非下划线和非空格字符
这一切都应该跟一个单词边界。
关于用于替换的 Java 正则表达式 - 如何使其高效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33566830/