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

如何用Java正则匹配Sigasi Studio端口命名后缀规则?

搞定Sigasi Studio的端口命名正则匹配问题

嘿,我明白你现在的困扰——想用Java正则给Sigasi Studio写端口名匹配规则,要求以_i或_o结尾,但之前试的表达式没生效对吧?

先说说你之前写的$_i|_o哪里出问题了:

  • $是行尾锚点,得放在你要匹配的结尾部分,不能搁开头,它的作用是确保字符串最后就是你指定的内容
  • 这个表达式没考虑端口名前面的前缀部分,直接写_i|_o只能匹配单独的_i或_o,没法匹配像my_input_port_i这种完整的端口名

针对Java正则语法(Sigasi Studio用的就是这个),给你几个好用的正则写法:

基础易懂版

.*_i$|.*_o$

拆解一下:

  • .*:匹配任意长度的任意字符(用来覆盖端口名的前缀,比如my_input_port)
  • _i/_o:精准匹配结尾的下划线加标识
  • $:锚定到字符串末尾,保证这部分就是最后内容
  • |:逻辑“或”,满足以_i结尾或者以_o结尾都算匹配

更紧凑的简化版

把重复的部分合并,让正则更清爽:

.*_(i|o)$

或者用字符集进一步简化([io]表示匹配i或o其中一个):

.*_[io]$

进阶优化(可选)

如果还想限制端口名开头必须是合法字符(比如不能以数字或特殊符号开头),可以调整前缀规则,要求开头是字母或下划线,后面可以跟着字母、数字、下划线:

[a-zA-Z_][a-zA-Z0-9_]*_[io]$

这样就不会匹配123_port_i这种不符合常规命名的端口啦。

你可以把这些表达式放到测试工具里(记得选Java语法模式)试试,像my_input_port_i、uart_tx_o都会匹配成功,而port_no_suffix、port_i_in_middle就会被排除在外。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:28:19