在两个双引号正则表达式之间允许带连字符的单词

时间:2019-01-31 09:59:30

标签: php regex regex-group

我在正则表达式上创建了双引号之间的单词。 例子

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 :(得分:1)

您可以使用

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

也可以捕获type,请参见a demo on 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);
}
?>

请参见a demo on ideone.com