假设我有一个这样的字符串:
String test = "hfikoebndolahsdHEL123LOkjahhsdqhuihs";
然后我想删除除“HEL123LO”之外的所有内容但是数字可能会像653一样,无论如何它都不会删除它。那可能吗?
我希望你能理解我!
提前谢谢。
(抱歉英语不好)。
答案 0 :(得分:14)
使用正确的正则表达式String.replaceAll()
方法。
test = test.replaceAll(".*(HEL\\d{3}LO).*", "$1");
此正则表达式匹配整个输入并将其替换为匹配的组(组号1)。
答案 1 :(得分:4)
如果您的String
类似于您所提到的类型,"hfikoebndolahsdHEL123LOkjahhsdqhuihs"
只有两者之间的数字相似,并且您希望保留HEL123LO
并休息这些字母就像你的例子中那样,你可以做一个简单的子串。我知道这可能不是最好的解决方案,只是建议一个替代方案。
test = test.substring(test.indexOf("H"),(test.lastIndexOf("O")+1));