我设备的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
我想知道是否有更好的方法吗?
答案 0 :(得分:3)
您可以使用这个更简单的正则表达式:
str = str.replaceFirst("_(%\\S*|[^_\\s]+)\\b", "");
即。匹配下划线,然后是2个替换:
%
和0个或更多非空格字符这一切都应该跟一个单词边界。
答案 1 :(得分:1)
另一种变体:
_%I.*$|_[^_]+$