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

如何在Tatsu中以不区分大小写方式匹配模式?((?i)使用疑问)

在Tatsu中实现不区分大小写的模式匹配

嘿,我来帮你搞定这个Tatsu里大小写不敏感的匹配问题~官方文档提到的(?i)其实是Tatsu的大小写不敏感修饰符,用法很灵活,我给你拆解两种常见场景:

1. 全局开启不区分大小写

如果你的整个规则都需要忽略大小写(比如只需要匹配strict这个词,不管大小写),直接把(?i)放在规则的最前面就行:

start = (?i)strict

这样不管输入是Strict、STRICT、sTrIcT甚至StRiCt,都能被成功识别。

2. 局部开启不区分大小写

如果你的规则里还有其他需要区分大小写的内容,只想让strict这部分忽略大小写,可以用(?i:...)的格式把目标词包裹起来,这样只有括号里的内容会生效:

start = prefix (?i:strict) suffix
prefix = /[A-Z]+/  # 这里依然区分大小写,只能匹配大写前缀
suffix = /[0-9]+/

这个例子里,prefix部分还是严格区分大小写,只有中间的strict会忽略大小写匹配。

简单来说,(?i)要么放在规则开头全局生效,要么用(?i:目标内容)的形式限定生效范围,刚好满足你匹配strict不区分大小写的需求~

内容的提问来源于stack exchange,提问作者Tommaso Mazza

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:05:49