doupin5667 2016-11-27 15:09
浏览 28

正则表达式没有关闭跨度

I'm a bit at a loss. The below regex works as expected:

$src_data = preg_replace("/&quot;(.+?)&quot;/", "<span class=\"src_att\">$0</span>", $src_data);
$src_data = preg_replace("/'(.+?)'/", "<span class=\"src_att\">$0</span>", $src_data);

However, this one fails to close the span:

$src_data = preg_replace("/\/\/(.+?)
/", "<span class=\"src_com\">$0</span>", $src_data);

Sure enough it's something trivia but I fail to see the error. Any help appreciated, thanks.

EDIT:

$src_data may be anything, e.g. a single line or multiple lines. The below is an example with single quotes - awhich works as expected:

$ds_type = array ('Bytes', 'KiB', 'MiB', 'GiB', 'TiB');

Albeit, trying to match a comment fails to add the closing span:

//** this is just a comment

The output is renderd fine, but obviously the mark-up is invalid due to the missing span.

  • 写回答

1条回答 默认 最新

  • dqn8235 2016-11-27 16:30
    关注

    Hate doing this, but since it's fixed I'll answer myself.

    $src_data = preg_replace("/\/\/(.*?)$/m", "<span class=\"src_com\">$0</span>", $src_data);
    

    Changing .*+? to .*? in conjunction with $/m was all it took. Did I mention trivia... Thanks all around.

    评论

报告相同问题?

悬赏问题

  • ¥20 易康econgnition精度验证
  • ¥15 线程问题判断多次进入
  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致