How to use macro within a regular expression

KanikaAg15
KanikaAg15 New Altair Community Member
edited November 2024 in Community Q&A
Hi, I have a macro whose value is used across multiple operators. I want to use the same macro within a regular expression. Can any one give an example how to use the same.
Tagged:

Answers

  • jwpfau
    jwpfau
    Altair Employee
    Hi,

    you can build your regex with a real value and replace it afterwards with %{macroname} inside the Parameters panel.

    <?xml version="1.0" encoding="UTF-8"?><process version="10.1.002">
      <context>
        <input/>
        <output/>
        <macros/>
      </context>
      <operator activated="true" class="process" compatibility="10.1.002" expanded="true" name="Process">
        <parameter key="logverbosity" value="init"/>
        <parameter key="random_seed" value="2001"/>
        <parameter key="send_mail" value="never"/>
        <parameter key="notification_email" value=""/>
        <parameter key="process_duration_for_mail" value="30"/>
        <parameter key="encoding" value="SYSTEM"/>
        <process expanded="true">
          <operator activated="true" class="utility:create_exampleset" compatibility="10.1.002" expanded="true" height="68" name="Create ExampleSet" width="90" x="179" y="34">
            <parameter key="generator_type" value="attribute functions"/>
            <parameter key="number_of_examples" value="1"/>
            <parameter key="use_stepsize" value="false"/>
            <list key="function_descriptions">
              <parameter key="data" value="&quot;Apr 24, 2022-Apr 30, 2022+Delay,Apr 24, 2022-Apr 30, 2022+Early,May 16, 2022-May 30, 2022+Delay,Jan 01, 2022-Jan 30, 2022+Early,Jun 26, 2022-Jun 30, 2022+NA&quot;"/>
            </list>
            <parameter key="add_id_attribute" value="false"/>
            <list key="numeric_series_configuration"/>
            <list key="date_series_configuration"/>
            <list key="date_series_configuration (interval)"/>
            <parameter key="date_format" value="yyyy-MM-dd HH:mm:ss"/>
            <parameter key="time_zone" value="SYSTEM"/>
            <parameter key="column_separator" value=","/>
            <parameter key="parse_all_as_nominal" value="false"/>
            <parameter key="decimal_point_character" value="."/>
            <parameter key="trim_attribute_names" value="true"/>
          </operator>
          <operator activated="true" class="set_macro" compatibility="10.1.002" expanded="true" height="82" name="Set Macro" width="90" x="380" y="34">
            <parameter key="macro" value="field"/>
            <parameter key="value" value="Delay"/>
          </operator>
          <operator activated="true" class="replace" compatibility="10.1.002" expanded="true" height="82" name="Replace" width="90" x="581" y="34">
            <parameter key="attribute_filter_type" value="all"/>
            <parameter key="attribute" value=""/>
            <parameter key="attributes" value=""/>
            <parameter key="use_except_expression" value="false"/>
            <parameter key="value_type" value="nominal"/>
            <parameter key="use_value_type_exception" value="false"/>
            <parameter key="except_value_type" value="file_path"/>
            <parameter key="block_type" value="single_value"/>
            <parameter key="use_block_type_exception" value="false"/>
            <parameter key="except_block_type" value="single_value"/>
            <parameter key="invert_selection" value="false"/>
            <parameter key="include_special_attributes" value="false"/>
            <parameter key="replace_what" value="([^+^,]+,)+[^+^,]+\+(?!%{field})[^,]+,?|(\+%{field},(?!.*\+%{field}))|\+%{field}"/>
            <parameter key="replace_by" value=""/>
          </operator>
          <connect from_op="Create ExampleSet" from_port="output" to_op="Set Macro" to_port="through 1"/>
          <connect from_op="Set Macro" from_port="through 1" to_op="Replace" to_port="example set input"/>
          <connect from_op="Replace" from_port="example set output" to_port="result 1"/>
          <portSpacing port="source_input 1" spacing="0"/>
          <portSpacing port="sink_result 1" spacing="0"/>
          <portSpacing port="sink_result 2" spacing="0"/>
        </process>
      </operator>
    </process>
    

    The Edit Regular Expression dialog won't work anymore, but the macro will be replaced at runtime.

    Greetings,
    Jonas

Welcome!

It looks like you're new here. Sign in or register to get started.

Welcome!

It looks like you're new here. Sign in or register to get started.