Regex从步骤中捕获组

Regex从步骤中捕获组,regex,step,Regex,Step,我得到了STEP文件(可以读取为文本),它是用EXPRESS编写的 该文件看起来像: #14(REPRESENTATION_RELATIONSHIP($,$,#293,#291)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#12)SHAPE_REPRESENTATION_RELATIONSHIP()); #35=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',#180,888

我得到了STEP文件(可以读取为文本),它是用EXPRESS编写的

该文件看起来像:

#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($,$,#293,#291); Group1: REPRESENTATION_RELATIONSHIP; Group2: $,$,#293,#291
Match: ADVANCED_BREP_SHAPE_REPRESENTATION('',(#29),#277); Group1: ADVANCED_BREP_SHAPE_REPRESENTATION; Group2: '',(#29),#277
我是新加入Regex的,并提出了以下模式:
(\b[A-Z\d]*[[u[A-Z\d]*]*)(\(.*))

这有一点效果,但例如将只匹配:
ADVANCED_-BREP_-SHAPE_表示法(“”,(#29)
而不是
ADVANCED_-BREP_-SHAPE_表示法(“”,(#29),#277)

谢谢您的帮助。

您可以使用

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

  • #\d+[(=])
    匹配#,1+位和
    =
  • (\w+)
    捕获组1,匹配1+个单词字符
  • \(
    匹配
  • (.*)
    捕获组2,尽可能匹配任何字符
  • \)[;A-Z]
    匹配
    后接
    或字符A-Z
您可以使用

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

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

可能是这样的
\d+[(=](\w+)(.*)\[;A-Z]
是的,就是这样。非常感谢。可能是这样的
\d+[(=](\w+)(.*)\[;A-Z]
是的,就是这样。非常感谢。