Đây có thể là một câu hỏi ngớ ngẩn, nhưng tôi không thể tìm thấy nó ở đâu:
Làm cách nào để sử dụng toán tử biểu thức chính quy HOẶC java (|) không có dấu ngoặc đơn?
ví dụ: Tel | Phone | Fax
Đây có thể là một câu hỏi ngớ ngẩn, nhưng tôi không thể tìm thấy nó ở đâu:
Làm cách nào để sử dụng toán tử biểu thức chính quy HOẶC java (|) không có dấu ngoặc đơn?
ví dụ: Tel | Phone | Fax
Câu trả lời:
Bạn chỉ có thể sử dụng đường ống của riêng nó:
"string1|string2"
ví dụ:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|string2", "blah"));
Đầu ra:
blah, blah, string3
Lý do chính để sử dụng dấu ngoặc đơn là để giới hạn phạm vi của các lựa chọn thay thế:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(1|2)", "blah"));
có cùng sản lượng. nhưng nếu bạn chỉ làm điều này:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|2", "blah"));
bạn lấy:
blah, stringblah, string3
vì bạn đã nói "string1" hoặc "2".
Nếu bạn không muốn nắm bắt phần đó của biểu thức, hãy sử dụng ?:
:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(?:1|2)", "blah"));