php - 正则表达式匹配所有引号,但当行以斜杠开头时不匹配
问题描述
使用 preg_replace() 在 PHP 中进行正则表达式。
匹配所有引号,但不匹配以斜杠开头的行
源代码:
// eehen nhdhdhd ooe "jjejej" ejeje "keihjen" jehhemm
jejej "jejeooe" kekek "jilnana" jennbeb
需要的结果:
// eehen nhdhdhd ooe "jjejej" ejeje "keihjen" jehhemm
jejej <span class="red">"jejeooe"</span> kekek <span class="red">"jilnana"</span> jennbeb
我的正则表达式只匹配最后一个引号。我将用外部跨度替换所有引号,包括引号,但不是所有引号都在注释行中。
我的正则表达式:
'/^((?!\/\/).*)(".*")/m'
我的替换:
'$1<span class="red">$2</span>'
我的结果:
// eehen nhdhdhd ooe "jjejej" ejeje "keihjen" jehhemm
jejej "jejeooe" kekek <span class="red">"jilnana"</span> jennbeb
解决方案
您的锚点使您的搜索从字符串的开头开始,然后继续。//
我会使用 PCRE 动词跳过任何以 s 开头的行。
^\/\/.*(*SKIP)(*FAIL)|("[^"]+")
那么你可以替换为
<span class="red">$1</span>
https://regex101.com/r/bLkctu/1/
对于实体化值:
^\/\/.*(*SKIP)(*FAIL)|(".*?")
推荐阅读
- javascript - 在html表单中单击后消失的提交按钮
- pointers - []struct{} 和 []*struct{} 有什么区别?
- ios - 尝试检查是否加载了视图控制器,然后将其呈现在容器中(UISegmentedController)
- ruby-on-rails - Rails 5:上传图片后出现附件错误
- android - 如何仅将editText用于数字
- c# - 给 Argb 值一个整数值
- android - Android Studio 中缺少 Kotlin 临时文件输出
- angular - 在 webrtc 中没有触发 icecandidate 事件
- mysql - MYSQL 状态最大值
- powershell - 在 PowerShell 中,将复杂对象 (SmoServer) 传递给 ArgumentList 中的后台作业 - 卡在“未启动”中