-1
A
回答
0
該碼相匹配的所有使用正則表達式的一段時間,然後把第一小數指向返回字符串。
以下是測試結果:
123.45.678.7, 123.456787
而這裏的代碼。
public class SecondMatch {
public String match(String s) {
StringBuilder builder = new StringBuilder();
String[] parts = s.split("\\.");
for (int i = 0; i < parts.length; i++) {
builder.append(parts[i]);
if (i == 0) {
builder.append(".");
}
}
return builder.toString();
}
public static void main(String[] args) {
String s = "123.45.678.7";
String t = new SecondMatch().match(s);
System.out.println(s + ", " + t);
}
}
0
0
剛剛有了一個翻找,發現這個在網絡上 - 它相當粗糙,但會做的工作......
retVal = retVal.replaceFirst(".","$");
retVal = retVal.replaceAll(".","");
retVal = retVal.replaceFirst("$",".");
這確實假設你的輸入中沒有任何$ - 如果你選擇了不同的字符。 它不是很好,可能有一個更好的Java正則表達式使用類似LookBehinds的東西,但我不是一個Java開發所以不能說。
1
System.out.println(
"123.45.678.7".replaceAll("\\G((?!^).*?|[^\\.]*\\..*?)\\.", "$1"));
123.456787
這也可以在不使用正則表達式來完成:
String str = "123.45.678.7";
String[] arr = str.split("\\.", 2);
System.out.println(arr[0] + "." + arr[1].replace(".", ""));
123.456787
+1
爲滿足請求的正則表達式部分而進行遞增投票。 – davidfmatheson
0
此正則表達式也應該工作:
String str = "123.45.678.9";
String repl = str.replaceAll("([^.]*\\.[^.]*|[^.]*)\\.", "$1");
// repl = 123.456789
相關問題
- 1. 賽後第一場比賽
- 2. 如何第一場比賽
- 3. 取代第二場比賽跳過第一場比賽在C#
- 4. SED:第一場比賽後追加
- 5. 命令到第一場比賽
- 6. 不包括第一場比賽,BeautifulSoup
- 7. 比賽第一場,然後加入行
- 8. 選擇的第一場比賽加入
- 9. 左加入第一場比賽在HQL
- 10. preg_replace只作用於第一場比賽
- 11. 爲每場比賽
- 12. Mysql join每場比賽獲得一排
- 13. 更新表,但通過第一場比賽,然後通過第二
- 14. 的Preg比賽沒有在第一場比賽
- 15. 切換一場比賽中的vimrc
- 16. 如何查找和替換每場比賽除了第一個使用SED?
- 17. 正則表達式只替換每場比賽的第一次出現
- 18. 去除括號替換第一場比賽
- 19. SQL查詢只更新第一場比賽
- 20. Python最後一場比賽
- 21. GROK第三場比賽
- 22. GroupBy每50場比賽| AngularJs
- 23. Perl遍歷每場比賽
- 24. 表值參數進行過濾的第一場比賽的每一行
- 25. 我需要匹配一個正斜槓的URL,但跳過第一場比賽
- 26. XSLT:從一個傳遞價值,每場比賽到下一個
- 27. Qt正則表達式從第一場比賽開始到最後一場比賽結束
- 28. 比賽第一和停止
- 29. 更換比賽
- 30. 比賽的一切,但\(\ d \)
我們可以,但你必須先試一下。 –