描述
此正则表达式将搜索您的示例字符串并找到 ReadThis 和最外层参数集的内容。
<[?](?:php\b)?.*?\s\bReadThis[(]([^)]+[)][^)]*)[)].*?[?]>
第 0 组将接收整个字符串,第 1 组将通过最后一个参数读取此内容。
我修改了您的搜索:
- 通过将特殊字符放在方括号内
\b
在php
之前和之后添加readthis
以确保您不会意外发现 areadthis
作为较大字符串的一部分
- 在第一个关闭参数之后,我为 0 个或更多非参数添加了第二个匹配项,以防您在其中包含要捕获的其他值。
- 为 close paran 添加了第二个匹配项,以确保它确实存在
PHP 示例
<?php
$sourcestring="<?php jifoafj sfjifasjfoasjfifajs ReadThis(array('type' => 'button', 'value' => 35)) oisfjoijsiofsa sffas ?>";
preg_match_all('/<[?](?:php\b)?.*?\s\bReadThis[(]([^)]+[)][^)]*)[)].*?[?]>/im',$sourcestring,$matches);
echo "<pre>".print_r($matches,true);
?>
$matches Array:
(
[0] => Array
(
[0] => <?php jifoafj sfjifasjfoasjfifajs ReadThis(array('type' => 'button', 'value' => 35)) oisfjoijsiofsa sffas ?>
)
[1] => Array
(
[0] => array('type' => 'button', 'value' => 35)
)
)