Tôi cố gắng để kết hợp 2 biểu thức thông thường thành 1 với toán tử OR: |
Sử dụng Regex toán tử OR để giải quyết 2 điều kiện
tôi có một để kiểm tra cho phù hợp với một bức thư tiếp theo 8 chữ số:
Regex.IsMatch(s, "^[A-Z]\d{8}$")
tôi có một để kiểm tra cho đơn giản 9 chữ số:
Regex.IsMatch(s, "^\d{9}$")
Bây giờ, thay vì thực hiện:
If Not Regex.IsMatch(s, "^[A-Z]\d{8}$") AndAlso
Not Regex.IsMatch(s, "^\d{9}$") Then
...
End If
tôi nghĩ tôi chỉ có thể làm:
If Not Regex.IsMatch(s, "^[A-Z]\d{8}|\d{9}$") Then
...
End If
Rõ ràng tôi không kết hợp hai cách chính xác và rõ ràng tôi khủng khiếp tại biểu thức thông thường. Bất kì sự trợ giúp nào đều được đánh giá cao.
Và đối với những người tự hỏi, tôi đã xem qua How to combine 2 conditions and more in regex và tôi vẫn đang gãi đầu.
một cách khác để viết nó sẽ là '"^[A-Z0-9] \ d {8} $ "' (một chữ hoa hoặc số được theo sau bởi 8 số). Tuy nhiên, tôi không thấy vấn đề gì với regex của bạn. Bạn có thể cung cấp một số ví dụ về các chuỗi nên/không khớp không? –
@PatrickMcElhaney Các mục nhập hợp lệ sẽ là: A1234578 HOẶC 123456789 –
@ Đề xuất của Patrick Patrick hỗ trợ cả hai, cũng như câu trả lời của Mike C dưới đây với cùng một regex. –