Hãy nói rằng tôi có một chuỗi:Powershell Regex - tên nhóm tùy chọn phù hợp với
$string1 = "Hello_World:How, are, you:-all -is -well"
Tôi muốn sử dụng một regex để phù hợp với các phần của chuỗi phân cách bằng ruột của thành các nhóm được đặt tên. Ví dụ:
$pattern = "(?<first>.*)\:(?<second>.*)\:(?<third>.*)"
$ này sẽ phù hợp với mô hình $ string1 thành công và tôi sẽ kết thúc với các trận đấu như sau:
first=Hello_World
second=How, are, you
third=-all -is -well
này là tốt, nhưng có một vấn đề. $ String1 có khả năng thiếu phần thứ ba, ví dụ:
Thật không may, $ string1 này không còn phù hợp với mẫu regex nữa. Làm thế nào để làm cho nó để các mô hình sẽ phù hợp với cả hai định dạng của chuỗi? (tức là tôi luôn phải có trận đấu "đầu tiên" và "thứ hai" và chỉ có trận đấu "thứ ba" nếu trận đấu được cung cấp).
Yep, đó là đơn giản hơn. Tuy nhiên, tôi ngần ngại cung cấp cho +1 này miễn là OP xác nhận rằng các phần khác nhau _do not_ chứa ':' - không phải là giải pháp của tôi xử lý điều này một cách chính xác, heh. – fge