Đâ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ó ở bất cứ nơi nào:Biểu thức chính quy Java OR operator
Làm cách nào để sử dụng toán tử biểu thức chính quy java (OR)?
ví dụ: Tel | Điện thoại | 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ó ở bất cứ nơi nào:Biểu thức chính quy Java OR operator
Làm cách nào để sử dụng toán tử biểu thức chính quy java (OR)?
ví dụ: Tel | Điện thoại | Fax
Bạn chỉ có thể sử dụng các đường ống trên riêng của mình:
"string1|string2"
ví dụ:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|string2", "blah"));
Output:
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 nhận được:
blah, stringblah, string3
vì bạn đã nói "string1" hoặc "2".
Nếu bạn không muốn chụp một phần của biểu thức sử dụng ?:
:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(?:1|2)", "blah"));
Điều gì sẽ xảy ra nếu tôi cần phải phân định các chuỗi này từ các phần khác của regex cũng là các chuỗi? ví dụ. eee (ff | gg) eee Tôi có phải sử dụng dấu ngoặc đơn không? –
Ah không bao giờ. Bản cập nhật của bạn sẽ khắc phục. Ví dụ cuối cùng là những gì tôi đang tìm kiếm. Cảm ơn! –
Trông ok, những gì vấn đề là bạn có? – danben
vâng, nên hoạt động. cletus, danben, và bản thân tôi đồng ý. Ngoài ra, @danben - tên tôi là Dan Beam, lol, rất gần! –