Cụm từ thông dụng có chứa từ này hay từ khác


83

Tôi cần tạo một biểu thức khớp với một số nguyên theo sau là "giây" hoặc "" phút "

Tôi đã thử biểu thức này: ([0-9]+)\s+(\bseconds\b)|(\bminutes\b)

Nó hoạt động tốt trong vài giây, nhưng không phải vài phút.

Ví dụ: "5 giây" cho 5; giây; trong khi "5 phút" cho ;; phút

Câu trả lời:


98

Bạn vừa bỏ lỡ thêm một cặp dấu ngoặc cho biểu tượng "HOẶC". Những điều sau sẽ thực hiện thủ thuật:

([0-9]+)\s+((\bseconds\b)|(\bminutes\b))

Nếu không có những người đó, bạn có thể khớp một số theo sau là giây HOẶC chỉ từ phút


17
nhưng đó là "trận đấu bổ sung" không bắt buộc. Hoặc sử dụng ([0-9]+)\s+(?:(\bseconds\b)|(\bminutes\b))hoặc([0-9]+)\s+(\bseconds\b|\bminutes\b)
bỏ qua

3
Đúng vậy, không cần dấu ngoặc quanh \ bseconds \ b và \ bminutes \ b!
micantox

33

Bạn có thể sử dụng một nhóm duy nhất trong giây / phút. Biểu thức sau có thể phù hợp với nhu cầu của bạn:

([0-9]+)\s*(seconds|minutes)

Bản demo trực tuyến

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.