<script src="public/a.js" rel="a" />
<script src="a1.js" rel="a" />
<script src="a2.js" rel="a" />
<script src="a3.js" rel="a" /><script src="public/b.js" rel="b" />
<script src="b1.js" rel="b" />
<script src="b2.js" rel="b" />
<script src="b3.js" rel="b" />
<script src="public/c.js" rel="c" />
<script src="c1.js" rel="c" />
<script src="c2.js" rel="c" />
<script src="c3.js" rel="c" />
<script src="public/d.js" rel="d" />
<script src="d1.js" rel="d" />
<script src="d2.js" rel="d" />
<script src="d3.js" rel="d" />分组正则,按照rel的属性分组,但是有public的js不替换,得出结果
<script src="public/a.js" rel="a" />
<script src="a1.js,a2.js,a3.js"/><script src="public/b.js" rel="b" />
<script src="b1.js,b2.js,b3.js"/><script src="public/c.js" rel="c" />
<script src="c1.js,c2.js,c3.js"/><script src="public/d.js" rel="d" />
<script src="d1.js,d2.js,d3.js"/>
<script src="a1.js" rel="a" />
<script src="a2.js" rel="a" />
<script src="a3.js" rel="a" /><script src="public/b.js" rel="b" />
<script src="b1.js" rel="b" />
<script src="b2.js" rel="b" />
<script src="b3.js" rel="b" />
<script src="public/c.js" rel="c" />
<script src="c1.js" rel="c" />
<script src="c2.js" rel="c" />
<script src="c3.js" rel="c" />
<script src="public/d.js" rel="d" />
<script src="d1.js" rel="d" />
<script src="d2.js" rel="d" />
<script src="d3.js" rel="d" />分组正则,按照rel的属性分组,但是有public的js不替换,得出结果
<script src="public/a.js" rel="a" />
<script src="a1.js,a2.js,a3.js"/><script src="public/b.js" rel="b" />
<script src="b1.js,b2.js,b3.js"/><script src="public/c.js" rel="c" />
<script src="c1.js,c2.js,c3.js"/><script src="public/d.js" rel="d" />
<script src="d1.js,d2.js,d3.js"/>
解决方案 »
- 关于soso音乐地址的问题
- 采集:有点难度的规则
- php simplexml 载入xml出现问题 在线等
- 读EXCEL时出现Detected an illegal character in input string in
- 刚租了个虚拟主机,但是URL重写缺不好用
- php投票
- 这个COOKIE的有效期怎么在按照规定的时间内就失效了?
- 我想做这么件事,http://xxxxxx/save.php?1234556890abcm之后,把1234567890abcm这些save.php带的参数保存到服务器上当前目录下的save.tx
- 很急的问题,3x
- 请问:PHP调用远端服务器提供的特定服务程序的方法
- php怎么将简体字转成繁体GBK啊?
- 为什么我的电脑安装不上zend optimizer?
$str = <<<STRING<script src="public/a.js" rel="a" />
<script src="a1.js" rel="a" />
<script src="a2.js" rel="a" />
<script src="a3.js" rel="a" /><script src="public/b.js" rel="b" />
<script src="b1.js" rel="b" />
<script src="b2.js" rel="b" />
<script src="b3.js" rel="b" />
<script src="public/c.js" rel="c" />
<script src="c1.js" rel="c" />
<script src="c2.js" rel="c" />
<script src="c3.js" rel="c" />
<script src="public/d.js" rel="d" />
<script src="d1.js" rel="d" />
<script src="d2.js" rel="d" />
<script src="d3.js" rel="d" />STRING;// 单纯的正则已经不能够实现你说的内容了
function _preg_replace($str) { $ret = ''; // 首先将public单独提取出来
$matches = array();
if(preg_match('/<script[^>]*?src="public[^"]+"[^>]*>/is', $str, $matches) !== false) {
$str = str_replace($matches[0], '', $str);
$ret = $matches[0].PHP_EOL;
} // 接着将剩下的内容替换成(内容,内容,)格式
$str = preg_replace('/\s*<script[^>]*?src="([^"]+)"[^>]*>\s*/is', '\1,', $str); $ret .= '<script src="'.trim($str, ',').'"/>'; return $ret;
}
//按组分块
$str = preg_replace('/(<script[^>]*?src="public[^"]+"[^>]*?rel="([^"]+)"[^>]*>(?:[.\s]*?<script[^>]*?rel="\\2"[^>]*>)+)/ise', '_preg_replace("$1")', $str);echo $str;---------- PHP Run ----------<script src="public/a.js" rel="a" />
<script src="a1.js,a2.js,a3.js"/><script src="public/b.js" rel="b" />
<script src="b1.js,b2.js,b3.js"/>
<script src="public/c.js" rel="c" />
<script src="c1.js,c2.js,c3.js"/>
<script src="public/d.js" rel="d" />
<script src="d1.js,d2.js,d3.js"/>
另外 这种格式推荐simple_html_dom会更加简单一点!