Допустим, у меня есть строка:
$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 больше не соответствует шаблону регулярных выражений.Как сделать так, чтобы шаблон соответствовал обоим форматам строки?(т.е. я всегда должен иметь «первое» и «второе» совпадение, и только «третье» совпадение, если оно предусмотрено).