2013-07-30 37 views
5

Tôi đang sử dụng Trình tạo dữ liệu VS 2010 để tạo các chuỗi thử nghiệm dựa trên cụm từ thông dụng.C# khớp regex với HHMMSS

Hiện tại, tôi đang gặp khó khăn khi sử dụng mẫu thích hợp để tạo các chuỗi thời gian HHMMSS.

Cho đến nay tôi có điều này, nhưng nó không hoàn toàn chính xác: ([01]?[0-9]|2[0-3])[0-5][0-9][0-5][0-9]

Ví dụ một bộ mong muốn sẽ như thế nào: 212013

+1

Các văn bản của câu hỏi của bạn làm cho nó rõ ràng - chuỗi đầu ra của bạn sẽ có delimiters ruột kết hay không? –

+0

ah, tôi đã để lại dấu hai chấm khi thử nghiệm. Chỉ cần được rõ ràng không nên có delimiters. Giống như ví dụ cho thấy. – Lee

+0

Vì vậy, bạn có ý nghĩa gì bởi "không hoàn toàn chính xác"? Nó làm gì sai? –

Trả lời

8

Sau đây nên đáp ứng yêu cầu định dạng của bạn:

([01][0-9]|2[0-3])[0-5][0-9][0-5][0-9] 

Phần ([01][0-9]|2[0-3]) bao gồm từ 00 đến 23, trong khi [0-5][0-9] bao gồm từ 00 đến 59.

Trong tài liệu gốc của bạn, ? đã tạo số 0 đứng đầu hoặc một tùy chọn, và do đó có khả năng tạo ra các số có 5 chữ số không hợp lệ.

4

Nếu bạn không chăm sóc cho regexes, làm thế nào về điều này:

var r = new Random(); 
DateTime.FromOADate(r.NextDouble()).ToString("HHmmss") 
+4

OP đang sử dụng trình tạo mã. Tôi cho rằng đầu vào của nó là một biểu thức chính quy, không phải là một dòng mã. –

Các vấn đề liên quan