Regex-thay thế
(?<=^|\.)0+
với chuỗi rỗng. Regex là:
(?<= # begin positive look-behind (i.e. "a position preceded by")
^|\. # the start of the string or a literal dot †
) # end positive look-behind
0+ # one or more "0" characters
† lưu ý rằng không phải tất cả các hương vị regex hỗ trợ chiều dài thay đổi cái nhìn-phía sau, nhưng NET không.
Nếu bạn mong đợi loại đầu vào: "00.03.03"
và muốn để giữ cho không hàng đầu trong trường hợp này (như "0.3.3"
), sử dụng biểu thức này thay vì:
(?<=^|\.)0+(?=\d)
và một lần nữa thay thế với chuỗi rỗng.
Từ các ý kiến (nhờ Kobi): Có một biểu ngắn gọn hơn mà không cần nhìn phía sau và tương đương với đề nghị thứ hai của tôi:
\b0+(?=\d)
đó là
\b # a word boundary (a position between a word char and a non-word char)
0+ # one or more "0" characters
(?=\d) # positive look-ahead: a position that's followed by a digit
Điều này hoạt động vì 0
xảy ra là một ký tự từ, do đó, các ranh giới từ có thể được sử dụng để tìm kiếm 0
đầu tiên liên tiếp. Nó là một biểu thức tương thích hơn, bởi vì nhiều hương vị regex không hỗ trợ chiều dài thay đổi phía sau, và một số (giống như JavaScript) không nhìn lại chút nào.
Bạn đang cố gắng để định dạng một ngày? Có những cách tốt hơn để làm điều này hơn là regex. – Oded
Không có ngày nào, đó là cấp độ phân cấp – Melursus