我通過將所有空格替換爲「_」來轉換字符串,如果在實際字符串中有「_」,我將它轉換爲「\ _」。如果有一個像「this is test _string」這樣的字符串,結果將是「this_is_test _ \ _ string」,現在我想用java正則表達式來取回原始字符串 「this is test _string」。是否有可能實現使用java正則表達式?請幫助我。使用java正則表達式
0
A
回答
7
不,不可能找回原始字符串,因爲您沒有轉義反斜線,這使得"\\_"
來自"_"
或"\\ "
不明確。
如果你做了
- 替換的
"\\"
所有出現的"\\\\"
- 與
"\\_"
- 替換的
"_"
所有出現的"_"
那麼你可以替換的" "
所有出現通過查找令牌來逆轉過程,"\\_"
,"_"
在一個單一的從左到右傳遞。
在Java中,第一變換是
stringToEncode.replace("\\", "\\\\").replace("_", "\\_").replace(" ", "_")
和雙是
String decode(String stringToDecode) {
int n = stringToDecode.length();
StringBuilder out = new StringBuilder(n);
int decoded = 0;
for (int i = 0; i < n; ++i) {
switch (stringToDecode.charAt(i)) {
case '\\':
out.append(stringToDecode, decoded, i);
decoded = ++i;
break;
case '_':
out.append(stringToDecode, decoded, i).append(' ');
decoded = i+1;
break;
}
}
return decoded != 0
? out.append(stringToDecode, decoded, n).toString()
: stringToDecode;
}
+1
我嘗試字符串「這是_test」,我得到的編碼字符串是「this_is _ \\ _ test」,這是例外。但解碼後的字符串是「這是\測試」。這會導致錯誤的字符串。 – Mojoy
+0
@Senthilnathan,是的。解碼不是簡單的交換和輸入反轉,因爲有重疊。將編輯。 –
相關問題
- 1. 從JDK使用正則表達式使用正則表達式
- 2. 正則表達式正則表達式正則表達式使用正則表達式,但不是與Python
- 3. 使用java的正則表達式
- 4. 如何使用Java正則表達式
- 5. 正則表達式使用Java
- 6. 使用Java驗證正則表達式
- 7. 使用正則表達式的Java Stringparsing
- 8. 正則表達式使用Java String.replaceAll
- 9. 正則表達式Java中使用 「AND」
- 10. 正則表達式使用java.util.regex API-java
- 11. 正則表達式使用Java
- 12. 提取使用Java +正則表達式
- 13. 使用正則表達式與java string.replace
- 14. 在java中使用正則表達式
- 15. 使用正則表達式中的Java
- 16. 使用多個Java正則表達式
- 17. 使用正則表達式在Java中
- 18. 使用Java正則表達式
- 19. Java正則表達式組與。* vs正常正則表達式
- 20. 形式的Java正則表達式PHP正則表達式
- 21. ^0 *正則表達式是不是正則表達式中使用的Java
- 22. 使用正則表達式在java中的數學表達式?
- 23. 如何在正則表達式中使用Java lambda表達式
- 24. Java中的正則表達式(正則表達式和語法)
- 25. 正則表達式的正則表達式的Java字符串
- 26. 將Java正則表達式轉換爲PHP正則表達式
- 27. 正則表達式:簡單的Java正則表達式問題
- 28. Java正則表達式來發現正則表達式
- 29. 的Javascript正則表達式爲Java正則表達式
- 30. 將php正則表達式轉換爲java正則表達式
[你嘗試過這麼遠嗎?(http://www.whathaveyoutried.com) – Baz