Скажут, у меня есть строка:Powershell Regex - опциональная группа соответствует
$string1 = "Hello_World:How, are, you:-all -is -well"
Я хотел бы использовать регулярное выражение, чтобы соответствовать разделам строки разделенной Колона в именованные группы. Например:
$pattern = "(?<first>.*)\:(?<second>.*)\:(?<third>.*)"
Это $ шаблон будет соответствовать $ string1 успешно, и я бы в конечном итоге со следующими матчами:
first=Hello_World
second=How, are, you
third=-all -is -well
Это хорошо, но есть проблема. $ String1 не может быть потенциально отсутствует третий раздел, например:
$string1 = "Hello_World:How, are, you"
К сожалению, это $ string1 больше не соответствует шаблону регулярного выражения. Как сделать так, чтобы шаблон соответствовал обоим форматам строки? (т. е. у меня всегда должно быть «первое» и «второе» совпадение, и только «третье» совпадение, если оно предусмотрено).
Yep, что является более простым. Тем не менее, я не решаюсь дать это +1, пока OP подтверждает, что разные части _do not_ содержат ':' - не то, что мое решение справляется с этим правильно, хе. – fge