微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则表达式从STEP捕获组

如何解决正则表达式从STEP捕获组

我得到了用EXPRESS编写的STEP文件(可以阅读为文本)。

文件如下:

#14(REPRESENTATION_RELATIONSHIP($,$,#293,#291)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#12)SHAPE_REPRESENTATION_RELATIONSHIP());
#35=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',#180,888.125521);
#25=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#29),#277);
#186=AXIS2_PLACEMENT_3D('',#270,#230,#231);

我想使用正则表达式来获得类似的信息:

Match: REPRESENTATION_RELATIONSHIP($,#291); Group1: REPRESENTATION_RELATIONSHIP; Group2: $,#291
Match: ADVANCED_BREP_SHAPE_REPRESENTATION('',#277); Group1: ADVANCED_BREP_SHAPE_REPRESENTATION; Group2: '',#277

我是Regex的新手,并提出了以下模式: (\b[A-Z\d]*[_[A-Z\d]*]*)(\((.*?)\))

这有点用,但是例如它将匹配:ADVANCED_BREP_SHAPE_REPRESENTATION('',(#29)而不是ADVANCED_BREP_SHAPE_REPRESENTATION('',#277)

谢谢您的帮助。

解决方法

您可以使用

#\d+[(=](\w+)\((.*?)\)[;A-Z]

说明

  • #\d+[(=]匹配#,1 +位数字和(=
  • (\w+)捕获组1,匹配1个以上的字符字符
  • \(匹配(
  • (.*?)捕获组2,尽可能匹配任何字符
  • \)[;A-Z]匹配),后跟;或字符A-Z

Regex demo

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。