正则表达式应优先用标签;单行正则(如/\d+/g)必须用,多行或带修饰符的才需。内

正则表达式该用 还是 <pre class="brush:php;toolbar:false;">?
单行正则(比如 /\d+/g、<code>^[a-z]+\.txt$)必须用 标签;多行正则(含修饰符换行、带注释的 extended 模式)才需要 <pre class="brush:php;toolbar:false;"><code>。误把 <code>/^<div>.*?$/s 塞进 <pre class="brush:php;toolbar:false;"> 里,会多出不必要的上下边距和滚动条,破坏段落流。
</pre>
<ul>
<li>
<code>/\w+@\w+\.\w+/ ✅ 合理:短、无换行、嵌在句子中自然
<pre class="brush:php;toolbar:false;">/^<div>[\s\S]*?$/m ✅ 合理:跨行、含 HTML 实体、需保留缩进 <li><code>/^<div>[\s\S]*?$/m ❌ 错误:浏览器把 <code> 当成标签开始,后续内容消失 <h3>正则里的 、& 必须手动转义</h3> <p>正则本身常含 <code>、<code>></code>(如匹配 HTML 标签)、<code>&</code>(如 Unicode 组合),但 <pre class="brush:php;toolbar:false;"> 标签不自动转义——这些字符会触发 HTML 解析,导致 DOM 截断或结构错乱。
- 想展示
/<p>(.+?)/ → 实际要写成 <code>/<p>(.+?)/</p><div class="aritcle_card flexRow artxards"> <div class="artcardd flexRow"> <a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill4293" title="Doc To HTML"><img src="https://img.php.cn/upload/skill/000/000/081/178998486916110.jpg" alt="Doc To HTML" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a> <div class="aritcle_card_info flexColumn"> <a rel="nofollow" href="/xiazai/skill4293" title="Doc To HTML" class="overflowclass">Doc To HTML</a> <p class="overflowclass">使用 MinerU 文档处理引擎将 Word 文档(.doc、.docx)转换为保留结构和格式的干净 HTML。</p> </div> <a rel="nofollow" href="/xiazai/skill4293" title="Doc To HTML" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a> </div> </div> - 想展示
/\u{1F600}/u→ 不用转义,因为没出现、<code>>、& - 漏转义
/x & y/→ 浏览器尝试解析& y/为实体,报错或丢内容
正则修饰符和 flag 怎么写才不混淆
正则末尾的 flag(如 g、i、m、s)是正则语法一部分,不是 HTML 属性,不能加空格或换行分隔;但若 flag 太长或需说明,建议用
分行 + 注释,而非硬塞进单行 <pre class="brush:php;toolbar:false;">。
/\b\w{3,}\b/gim ✅ 紧凑清晰,适合文档内提一句-
/\b\w{3,}\b/后面另起一行写// g: global, i: case-insensitive, m: multiline❌ 错误:标签不认注释,且换行会被折叠
-
<code>/\b\w{3,}\b/gim // flags: global + case-insensitive + multiline</code>✅ 可读性强,且注释被当作文本保留
为什么不能直接用 包裹整个正则测试用例
像 const regex = /<div>.*?/g; 这种带 JS 语法的代码,本质是「代码片段」而非「正则字面量本身」。它含变量声明、赋值、分号,还可能有引号嵌套,已超出 <pre class="brush:php;toolbar:false;"> 的语义边界。
</pre>
<ul><li>只强调正则部分 → 用 <code>/<div>.*?/g
<li>展示完整语句 → 必须用 <pre class="brush:php;toolbar:false;">,并转义所有 <code> 和 <code>></code>:<pre class="brush:php;toolbar:false;"><pre class="brush:php;toolbar:false;">const regex = /<div>.*?/g;
<li>混用(如 <code>const regex = /<div>.*?/g;)→ 渲染为单行、无语法高亮、<pre class="brush:php;toolbar:false;"> 被读屏器当作一个变量名
正则表达式看似只是字符串,但一旦进入 HTML,它的 <code>、<code>></code> 就立刻变成解析器的开关。最常被跳过的动作,就是把正则粘贴进 <code> 前,先扫一眼有没有 <code> 或 <code>&</code> ——没有这一步,后面所有样式、高亮、可访问性都白搭。</code></code></code></pre>
</div>










