Regex захватывает открывающие и закрывающие скобки, но не должен - PullRequest
0 голосов
/ 23 сентября 2019

Я в тупике.У меня есть следующая строка:

{{"extraid":"fj09bA6K3K8u" ,"extraquantity" : 1 ,"extraitemState":"LOADED"},{"extraid2":"fj09bA6K3K8u2" ,"extraquantity2" : 2 ,"extraitemState2":"LOADED2"}}

и следующее регулярное выражение:

{(?!{)([\s\S]*?)}

, которое возвращает

{"extraid":"fj09bA6K3K8u" ,"extraquantity" : 1 ,"extraitemState":"LOADED","extraid2":"fj09bA6K3K8u2" ,"extraquantity2" : 2 ,"extraitemState2":"LOADED2"}

С КУРИЛЬНЫМИ ВРЕМЕНИ!Мне нужна струна без них, и у меня блок мозга.Да, я искал ТАК безрезультатно.маленькая помощь?Фактический код PHP:

$re = '@{(?!{)([\s\S]*?)}@s';
                    $subst = '\\1';
                    $result = preg_replace($re, $subst, $innerstring);

, который возвращает то, что уже указано выше.Мне нужно

"extraid":"fj09bA6K3K8u" ,"extraquantity" : 1 ,"extraitemState":"LOADED","extraid2":"fj09bA6K3K8u2" ,"extraquantity2" : 2 ,"extraitemState2":"LOADED2"

без фигурных скобок.И да, в этом примере он вернет два результата.Оба возвращаются с ненужными скобками.

1 Ответ

0 голосов
/ 23 сентября 2019

Я ПОЛУЧИЛ ЭТО

\{+(.*?)\}+

Оператор "+" установлен для одного или нескольких одинаковых символов.В заключение!Спасибо всем, кто принял участие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...