preg_match_all Компиляция не удалась: диапазон не в порядке в классе символов со смещением - PullRequest
0 голосов
/ 25 марта 2020

У меня не получается найти указанный c объект с шаблоном preg_match_all. У меня есть текст. Но я хотел бы найти только один конкретный c

Как у меня есть строка текста

sadasdasd:{"website":["https://bitcoin.org/"]tatic/cloud/img/coinmarketcap_grey_1.svg?_=60ffd80');display:inline-block;background-position:center;background-repeat:no-repeat;background-size:contain;width:239px;height:41px;} .cqVqre.cmc-logo--size-large{width:263px;height:45px;}
/* sc-component-id: sc-2wt0ni-0 */

Однако мне просто нужно найти "веб-сайт": ["https://bitcoin.org/ "]. Где веб-сайт динамически c данных. Например, веб-сайт может быть Google "веб-сайт": ["https://google.com/"]

Прямо сейчас у меня есть что-то вроде этого. Вот только верните большую часть URL. Мне нужно просто указать c

    $parsePage = "sadasdasd:{"website":["https://bitcoin.org/"]tatic/cloud/img/coinmarketcap_grey_1.svg?_=60ffd80');display:inline-block;background-position:center;background-repeat:no-repeat;background-size:contain;width:239px;height:41px;} .cqVqre.cmc-logo--size-large{width:263px;height:45px;}
        /* sc-component-id: sc-2wt0ni-0 */";    
    $pattern = '/
     \"website":["          # [ character
                (?:         # non-capturing group
                    [^{}]   # anything that is not a { or }
                    |       # OR
                    (?R)    # recurses the entire pattern
                )*          # previous group zero or more times
           \"]              # ] character
    /x';
    preg_match_all($pattern, $parsePage, $matches);
    print_r($matches[0]);

1 Ответ

2 голосов
/ 25 марта 2020

Попробуйте:

$pattern = '~"website":\["([^"]*)"~'
...