Vì vậy, tôi cần phải nhận được giờ, phút và giây ra các mục như thế này:Giờ kết hợp/phút/giây trong biểu thức chính quy - một cách tốt hơn?
- 04:43:12
- 9.43.12
- 1:00
- 01,04
Hai giờ đầu tiên là phút, giây và giây. Tiếp theo là phút và giây. Hai giây cuối cùng chỉ là vài giây.
Và tôi đã đưa ra regexp này, mà làm việc ..:
\A(?<hours>\d{1,2})(?::|\.)(?<minutes>\d{1,2})(?::|\.)(?<seconds>\d{1,2})\z|\A(?<minutes>\d{1,2})(?::|\.)(?<seconds>\d{1,2})\z|\A(?<seconds>\d{1,2})\z
Nhưng nó là xấu xí, và tôi muốn refactor nó xuống không được 3 thành ngữ khác nhau (chủ yếu là chỉ để học hỏi). Tôi đã thử điều này:
\A(?:(?<hours>\d{1,2})(?::|\.){0,1})(?:(?<minutes>\d{1,2})(?::|\.){0,1})(?:(?<seconds>\d{1,2}){0,1})\z
Nhưng điều đó không hoạt động - phút và giây đôi khi bị làm hỏng. Não của tôi đang bị tổn thương, và tôi không thể hiểu được, những gì tôi đang làm sai.
Đây KHÔNG phải là ngôn ngữ bất khả tri. Cú pháp của cụm từ thông dụng là khác nhau cho các ngôn ngữ khác nhau. –