regex chính xác cho ký tự cộng (+) làm đối số đầu tiên (tức là chuỗi để thay thế) cho phương thức replaceAll
của Java trong lớp String? Tôi không thể có được cú pháp đúng.Cách thay thế ký tự cộng bằng cách sử dụng phương thức String.replaceAll của Java
Trả lời
Bạn cần thoát khỏi biểu tượng chính quy, sử dụng \
.
Tuy nhiên, Java sử dụng tham số Chuỗi để xây dựng cụm từ thông dụng, sử dụng \
cho chuỗi thoát riêng của nó. Vì vậy, bạn phải thoát khỏi \
bản thân:
"\\+"
Bạn sẽ cần thoát khỏi dấu + bằng \ và bởi vì \ chính nó là một ký tự đặc biệt trong chuỗi Java, bạn sẽ cần phải thoát khỏi ký tự đó bằng \.
Vì vậy, chuỗi regex của bạn sẽ được định nghĩa là "\\ +" trong mã Java.
I.e. ví dụ này:
String test = "ABCD+EFGH";
test = test.replaceAll("\\+", "-");
System.out.println(test);
khi nghi ngờ, chúng ta hãy java làm việc cho bạn:
myStr.replaceAll(Pattern.quote("+"), replaceStr);
Đó là một kỹ thuật tốt - cảm ơn. –
không đủ. replaceStr cũng cần phải được trích dẫn cho các công cụ thay thế. tại sao không chỉ sử dụng 'myStr.thay thế ("+", replaceStr) ' – user102008
Tại sao replaceStr phải được trích dẫn? String.replace() không thay thế tất cả các lần xuất hiện. – FelixM
Nếu bạn muốn có một chuỗi đơn giản tìm và thay thế (tức là bạn don 't cần regex), nó có thể là đơn giản để sử dụng StringUtils from Apache Commons, mà sẽ cho phép bạn viết:
mystr = StringUtils.replace(mystr, "+", "plus");
thx để trỏ đến điều này. đã giúp tôi nhớ sử dụng giải pháp phi regex này trong các trường hợp đơn giản. –
không phải là tương đương với việc sử dụng mystr.replace ("+", "cộng")? thay thế không sử dụng regex (trong khi replaceAll làm). – Vinze
những người khác đã nói đúng phương pháp:
- Thoát khỏi
+
như\\+
- Sử dụng phương pháp
Pattern.quote
mà thoát tất cả các meta-nhân vật regex.
Một phương pháp khác mà bạn có thể sử dụng là đặt +
vào một lớp nhân vật. Nhiều ký tự meta regex (.
, *
, +
trong số nhiều đối tượng khác) được xử lý theo nghĩa đen trong lớp ký tự.
Vì vậy, bạn cũng có thể làm:
orgStr.replaceAll("[+]",replaceStr);
Giả sử bạn muốn thay thế -
với \\\-
, sử dụng:
text.replaceAll("-", "\\\\\\\\-");
String str="Hello+Hello";
str=str.replaceAll("\\+","-");
System.out.println(str);
HOẶC
String str="Hello+Hello";
str=str.replace(Pattern.quote(str),"_");
System.out.println(str);
Chẳng phải ví dụ thứ hai là 'Pattern.quote (" + ")' và không phải là 'Pattern.quote (str)'? –
- 1. Sử dụng các hàm hoặc phương thức trong String.replaceAll() của Java regex
- 2. Regex sử dụng Java String.replaceAll
- 3. Thay thế chuỗi ký tự trong java
- 4. Tự động đăng ký các phương thức lớp bằng cách sử dụng trang trí
- 5. Cách thay thế "\" bằng "\\" trong java
- 6. Sử dụng các ký tự đại diện bằng phương thức createQuery của Doctrine
- 7. Java Regex - Sử dụng chuỗi thay thếTất cả phương pháp để thay thế dòng mới
- 8. Tôi có thể đặt mức ghi nhật ký trong một phương thức Java bằng cách sử dụng log4j không?
- 9. jQuery - cách sử dụng phương thức "on()" thay vì "live()"?
- 10. Cách tạo đối tượng Hình chữ nhật trong Java bằng cách sử dụng phương thức g.fillRect
- 11. Regex để trộn ngẫu nhiên đơn giản bằng cách sử dụng String.replaceAll
- 12. Thay thế dấu phẩy trong dấu ngoặc đơn bằng cách sử dụng regex trong java
- 13. Chuỗi: Cách thay thế nhiều ký tự có thể bằng một ký tự đơn?
- 14. Tôi muốn thay thế toàn bộ Chuỗi bằng giá trị mới bằng cách sử dụng phương thức String replaceAll trong Java
- 15. Đặt bộ ký tự bằng cách sử dụng MySQLi
- 16. Các phương án thay thế nhanh hơn để thay thế phương thức trong một chuỗi Java?
- 17. Cách sử dụng phương thức get() của ArrayList
- 18. Đặt Bảng ký tự/tập hợp bằng cách sử dụng Phương ngữ Hibernate?
- 19. Truy cập phương thức java tĩnh công cộng từ scala
- 20. Cắt nhiều ký tự bằng cách sử dụng php
- 21. Đếm chữ và ký tự bằng cách sử dụng jQuery
- 22. Cách sử dụng phương thức onWindowFocusChanged()?
- 23. Sử dụng phương thức abs() trong java. Trình biên dịch của tôi không biết phương thức
- 24. biến tĩnh công cộng hoặc sử dụng phương thức putExtra của lớp ý định
- 25. Làm cách nào để sử dụng Python để thay thế các ký tự thoát HTML?
- 26. Cách tạo chữ ký phương thức?
- 27. Phương pháp Swizzling trong Android bằng cách sử dụng java
- 28. Gọi phương thức Generic bằng cách phản ánh trong java
- 29. Java "tuần tự hóa phương thức" của lớp ẩn danh
- 30. Cách sử dụng phương thức Moq.MockRepository.Of()
Tôi có thói quen xấu khi sử dụng '/' khi xây dựng regex và sau đó chạy .replace ('/', '\\'), để tôi không phải nhập "\\\\" để đối sánh với dấu gạch chéo ngược. –
Nếu bạn muốn thay thế một chuỗi cố định, Pattern.quote (String) là một người bạn rất tốt. – gustafc