Я работаю со строкой, содержащей параметры, разделенные некоторыми специальными символами в PHP с preg_match
Примером может быть такой, который имеет четыре параметра.
1stparm?#?1111?@?2ndParm?#?2222?@?3rdParm?#?3333?@?4thparm?#?444?@?
За каждым именем параметра следует? #?, И его значение находится рядом с ним, заканчиваясь? @? (примечание: значения могут быть строками или числами и даже специальными символами)
Я, вероятно, слишком усложнил свое регулярное выражение, которое работает в НЕКОТОРЫХ случаях, но не в том случае, если я ищу последний параметр в строке ..
В этом примере возвращается 2222 как правильное значение (в группе 1) для 2ndParm
(?:.*)2ndParm\?#\?(.*?)\?@\?(?=.)(.*)
, но происходит сбой, если 2ndParm является последним в строке, как в следующем примере:
1stparm?#?1111?@?2ndParm?#?2222?@?
Я также был бы признателен за помощь в возвращении только одной группы с моим результатом ... я не смог этого сделать, но, поскольку я всегда получаю ту, которая мне интересна, в группе 1, я могу получить ее легко в любом случае.