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

如何用正则表达式拆分Verilog网表中不同格式的元件实例描述

解决方案

适用于匹配题目给出的Verilog网表元件实例语句,支持C++ Builder、Delphi环境的PCRE兼容正则引擎。

可用正则表达式

^(\w+)(?:\s+(\w+))?\s*(?:\(\s*(.*?)\s*\))?\s*\(\s*(.*?)\s*\)\s*;

捕获组说明

  • 第1组:元件类型(必填,如xor、nmos)
  • 第2组:可选实例名,无实例名时该组为空
  • 第3组:可选参数块内容,无单独参数括号时该组为空
  • 第4组:引脚列表内容(必填)

匹配效果验证

对题目给出的4种写法均能正确拆分:

  1. xor (pin1, pin2, pin3, pin4 ..... ) ;:第1组为xor,第2、3组为空,第4组为pin1, pin2, pin3, pin4 .....
  2. nmos (parameter ) (pin1, pin2, pin3) ;:第1组为nmos,第2组为空,第3组为parameter,第4组为pin1, pin2, pin3
  3. xor instancename (pin1, pin2, pin3, pin4 ..... ) ;:第1组为xor,第2组为instancename,第3组为空,第4组为pin1, pin2, pin3, pin4 .....
  4. nmos (parameter ) (pin1, pin2, pin3) ;:第1组为nmos,第2组为空,第3组为parameter,第4组为pin1, pin2, pin3

使用提示

C++ Builder、Delphi环境下可直接使用TPerlRegEx组件加载该正则,逐行匹配Verilog文本即可提取对应字段。如果处理的文本中存在括号嵌套场景,可将惰性匹配.*?替换为适配嵌套的正则逻辑,标准Verilog网表场景下当前写法已覆盖需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:09:03