You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Typst中匹配尖括号内文本?正则匹配失效问题咨询

问题分析与解决办法

核心原因

你在Typst中使用的#show regex("<.*>"): highlight规则失效,是因为输入的内容被拆分成了多个独立的内容节点:

  • 转义后的<是单个字符节点
  • #lorem(10)执行后生成的是独立的文本节点
  • 转义后的>是另一个单个字符节点

而Typst的#show regex()仅支持匹配连续的单个文本节点,无法跨节点组合匹配,因此你的正则表达式无法识别由多个节点拼接成的<#lorem(10)>内容。

可行解决方案

方案1:合并为单个文本节点(推荐)

将需要匹配的内容用双引号包裹,让<#lorem(10)>成为一个连续的文本节点,此时正则就能正常匹配并高亮:

#show regex("<.*>"): highlight

"<#lorem(10)>"

方案2:多节点匹配高亮

如果必须保留原有的\<转义写法,可以通过选择器匹配<、中间任意内容和>的组合,实现整体高亮:

#show <|> + any() + <|>: highlight

\<#lorem(10)\>

针对单个<20...>的匹配问题

如果你输入的是\<20...(即渲染后为<20...),但正则<20无法匹配,检查是否存在以下情况:

  • 确认输入的\<20...是否被拆分为多个节点(比如\<和20...是分开的),如果是,同样用双引号包裹成<20...单个文本节点即可。

内容的提问来源于stack exchange,提问作者K G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 09:31:16