我有一個看起來像這樣的字串:
analitics@gmail.com@5
它代表我的userId.
我必須將它userId作為引數發送給函式,并以我在第二秒后洗掉數字 5@并附加新數字的方式發送它。
我從這樣的事情開始:
userService.getUser(user.userId.substring(0, userAfterMigration.userId.indexOf("@") 1) 3
@使用 Java洗掉上面字串中第二個字符之后的所有內容的最佳方法是什么?
uj5u.com熱心網友回復:
您可以在第 1 組中捕獲要保留的內容,并匹配要洗掉的內容。
在替換中使用捕獲組 1 表示 $1
^((?:[^@\s] @){2}).
^字串的開始(捕獲組 1(?:[^@\s] @){2}重復2次匹配@以外的1 個字符,然后匹配@
)關閉第 1 組.匹配 1 個或多個要洗掉的字符
正則運算式演示| Java 演示
String s = "[email protected]@5";
System.out.println(s.replaceAll("^((?:[^@\\s] @){2}). ", "$1"));
輸出
analitics@gmail.com@
如果字串也可以開頭@@1并且您想保留,@@那么您還可以使用:
^((?:[^@]*@){2}).
正則運算式演示
uj5u.com熱心網友回復:
這是一個拆分選項:
String input = "[email protected]@5";
String output = String.join("@", input.split("@", 3)) "@";
System.out.println(output); // [email protected]@
假設您的輸入只有兩個at 符號,您可以在此處使用正則運算式替換:
String input = "[email protected]@5";
String output = input.replaceAll("@[^@]*$", "@");
System.out.println(output); // [email protected]@
uj5u.com熱心網友回復:
在最簡單的說,似乎對你的作業方式:
str = str.replaceAll("@[^.] $", "");
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/345753.html
