Regex khớp một trong hai từ


301

Tôi có một đầu vào chỉ có thể có 2 giá trị applehoặc banana. Tôi có thể sử dụng biểu thức chính quy nào để đảm bảo rằng một trong hai từ đã được gửi?


2
Trong ngôn ngữ / môi trường này là regex đang được thực hiện? Regex có vẻ như không cần thiết trong nhiều tình huống.
mickmackusa

Câu trả lời:


467

Điều này sẽ làm:

/^(apple|banana)$/

để loại trừ từ chuỗi bắt (ví dụ $1, $2):

(?:apple|banana)

43
Đối với một số người, sử dụng điều này như một nhóm không chụp sẽ hữu ích. Sử dụng (?:apple|banna)kết hợp cả hai, nhưng sẽ không thêm chúng vào danh sách các chuỗi bắt (ví dụ $1, $2.. $N).
ngờ1ejack

Xin chào câu hỏi nhanh, tôi nên làm gì nếu tôi không muốn applebanana khớp?
Grover Reyes

Regex ở trên khớp với táo và chuối, nhưng không khớp với applebanana.
phlogratos

99

Có các công cụ regex khác nhau nhưng tôi nghĩ rằng hầu hết chúng sẽ hoạt động với điều này:

apple|banana

55
Nếu bạn có kế hoạch đưa nhiều hơn vào regex của mình, bạn sẽ cần đặt dấu ngoặc đơn xung quanh các từ của bạn, như thế này : (apple|banana).
Brian J

Nhưng làm thế nào để làm cho nó không nhạy cảm?
Nitish

Đó là thiết lập với re.IGNORECASEcờ. Ví dụ:re.compile("(apple|banana)", re.IGNORECASE)
Quân đội Ynddal

-8

Biểu thức thông thường /.txt|.tif/có thể được sử dụng trên SiteScope để định vị 'Khớp tên tệp' cho Trình giám sát thư mục khi tìm kiếm hai loại tệp khác nhau kết thúc bằng .txt hoặc .tif

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.