Разрешить дефис со словом между двумя двойными кавычками - PullRequest
0 голосов
/ 31 января 2019

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

string = Hi[pause="x-weak"]Parth[pause="weak"]How[pause="medium"]are[pause="strong"]You[pause="x-strong"]tell me

regex = \[\h*pause\h*=\h*"\h*(\w+)\h*"\h*]

Это соответствует [pause="weak"] только.Мне нужно, чтобы он соответствовал всем тегам с pause.

1 Ответ

0 голосов
/ 31 января 2019

Вы можете использовать

\[[^][]*pause="(?P<type>[^"]+)"

, который также поймает type, см. демонстрацию на regex101.com .


В PHP это может быть
<?php

$string = 'Hi[pause="x-weak"]Parth[pause="weak"]How[pause="medium"]are[pause="strong"]You[pause="x-strong"]tell me';
$regex = '~\[[^][]*pause="(?P<type>[^"]+)"~';

if (preg_match_all($regex, $string, $matches)) {
    print_r($matches);
}
?>

См. демо на ideone.com .

...