Extract string based on some conditions, detect strings before and strings after

I wish to extract the relevant string out from the below:

Signals =[
  /'Signals'/'Panel_04_Outputs_BT_1753_2_[_TC_-_Type_T][](Tair_evap_HVAC_TC2_degC)'
6                                /'Signals'/'LIN_1_Outputs_EAC_speed[](CompSpeed_rpm)'
7                   /'Signals'/'Panel_01_Outputs_BT_1747_[PT100][](Tref_HX3_out_degC)'
8                     /'Signals'/'AC_HVAC_Outputs_BM_1406[](Rhair_HVACunit_feed_perc)'
9                  /'Signals'/'Panel_01_Outputs_BP_1741_[4-20mA][](Pref_SOV22_in_bar)'
10         /'Signals'/'Conditioning_Unit_9_Outputs_BT_XX31[](Tw_heater_core_out_degC)'
11 /'Signals'/'Panel_04_Outputs_BT_1754_2_[_TC_-_Type_T][](Tair_heater_HVAC_TC1_degC)'
12                 /'Signals'/'Panel_01_Outputs_BP_1744_[4-20mA][](Pref_accum_in_bar)'
13           /'Signals'/'Panel_01_Outputs_BT_1236_[PT100][](Tref_TXVchiller_out_degC)'
14                 /'Signals'/'Panel_01_Outputs_BT_1748_[PT100][](Tref_comp_out_degC)'
15                   /'Signals'/'Panel_01_Outputs_BT_1248_[PT100][](Tref_TXV_in_degC)'
16                   /'Signals'/'AC_HVAC_Outputs_BT_1402[](Tair_HVACunit_return_degC)'
17          /'Signals'/'Conditioning_Unit_9_Outputs_BT_XX34[](Tw_heater_core_in_degC)'
18       /'Signals'/'Panel_06_Outputs_XG_1818_[Counter][](Flowref_hybrid_chiller_in_)'
19             /'Signals'/'Panel_06_Outputs_XG_1817_[Counter][](Flowref_Cab_evap_in_)'
20      /'Signals'/'Conditioning_Unit_3_Outputs_BF_XX27[](Flow_water_hybrid_cond_lpm)'
21                   /'Signals'/'Panel_01_Outputs_BP_1249_[4-20mA][](Pref_TXV_in_bar)'
22                 /'Signals'/'Panel_01_Outputs_BT_1746_[PT100][](Tref_SOV22_in_degC)'
23                  /'Signals'/'AC_Battery_Outputs_BT_1506[](Tair_testcham_feed_degC)'
]

We can see some patterns in the string, for example for Row 10, I need to extract out:
Conditioning_Unit_9_Outputs_BT_XX31
and for Row 11, I need to extract out:
Panel_04_Outputs_BT_1754_2_[TC-_Type_T]
So the pattern before is "/'Signals'/'" and the pattern after is "".
I tried the code below:

res <- str_match(Signals[10,], "Signals\s*(.?)\s(")
Error in stri_match_first_regex(string, pattern, opts_regex = opts(pattern)) :
Missing closing bracket on a bracket expression. (U_REGEX_MISSING_CLOSE_BRACKET, context=Signals\s*(.*?)\s*[]()

res <- str_match(Signals[10,], "Signals\s*(.?)\s(")
Error: '[' is an unrecognized escape in character string starting ""Signals\s*(.?)\s["

The pattern after is the two square brackets.
Thanks.

Your sample data is not in a copy/paste friendly format so I don't know how exactly your input data is formated but I think this regular expression is what you are looking for.

library(stringr)

Signals <- "/'Signals'/'Panel_04_Outputs_BT_1753_2_[_TC_-_Type_T][](Tair_evap_HVAC_TC2_degC)'
                                /'Signals'/'LIN_1_Outputs_EAC_speed[](CompSpeed_rpm)'
                   /'Signals'/'Panel_01_Outputs_BT_1747_[PT100][](Tref_HX3_out_degC)'
                     /'Signals'/'AC_HVAC_Outputs_BM_1406[](Rhair_HVACunit_feed_perc)'
                  /'Signals'/'Panel_01_Outputs_BP_1741_[4-20mA][](Pref_SOV22_in_bar)'
             /'Signals'/'Conditioning_Unit_9_Outputs_BT_XX31[](Tw_heater_core_out_degC)'
     /'Signals'/'Panel_04_Outputs_BT_1754_2_[_TC_-_Type_T][](Tair_heater_HVAC_TC1_degC)'
                     /'Signals'/'Panel_01_Outputs_BP_1744_[4-20mA][](Pref_accum_in_bar)'
               /'Signals'/'Panel_01_Outputs_BT_1236_[PT100][](Tref_TXVchiller_out_degC)'
                     /'Signals'/'Panel_01_Outputs_BT_1748_[PT100][](Tref_comp_out_degC)'
                       /'Signals'/'Panel_01_Outputs_BT_1248_[PT100][](Tref_TXV_in_degC)'
                       /'Signals'/'AC_HVAC_Outputs_BT_1402[](Tair_HVACunit_return_degC)'
              /'Signals'/'Conditioning_Unit_9_Outputs_BT_XX34[](Tw_heater_core_in_degC)'
           /'Signals'/'Panel_06_Outputs_XG_1818_[Counter][](Flowref_hybrid_chiller_in_)'
                 /'Signals'/'Panel_06_Outputs_XG_1817_[Counter][](Flowref_Cab_evap_in_)'
          /'Signals'/'Conditioning_Unit_3_Outputs_BF_XX27[](Flow_water_hybrid_cond_lpm)'
                       /'Signals'/'Panel_01_Outputs_BP_1249_[4-20mA][](Pref_TXV_in_bar)'
                     /'Signals'/'Panel_01_Outputs_BT_1746_[PT100][](Tref_SOV22_in_degC)'
                      /'Signals'/'AC_Battery_Outputs_BT_1506[](Tair_testcham_feed_degC)'"

str_extract_all(Signals, "(?<=/'Signals'/').+(?=\\[\\])")
#> [[1]]
#>  [1] "Panel_04_Outputs_BT_1753_2_[_TC_-_Type_T]"
#>  [2] "LIN_1_Outputs_EAC_speed"                  
#>  [3] "Panel_01_Outputs_BT_1747_[PT100]"         
#>  [4] "AC_HVAC_Outputs_BM_1406"                  
#>  [5] "Panel_01_Outputs_BP_1741_[4-20mA]"        
#>  [6] "Conditioning_Unit_9_Outputs_BT_XX31"      
#>  [7] "Panel_04_Outputs_BT_1754_2_[_TC_-_Type_T]"
#>  [8] "Panel_01_Outputs_BP_1744_[4-20mA]"        
#>  [9] "Panel_01_Outputs_BT_1236_[PT100]"         
#> [10] "Panel_01_Outputs_BT_1748_[PT100]"         
#> [11] "Panel_01_Outputs_BT_1248_[PT100]"         
#> [12] "AC_HVAC_Outputs_BT_1402"                  
#> [13] "Conditioning_Unit_9_Outputs_BT_XX34"      
#> [14] "Panel_06_Outputs_XG_1818_[Counter]"       
#> [15] "Panel_06_Outputs_XG_1817_[Counter]"       
#> [16] "Conditioning_Unit_3_Outputs_BF_XX27"      
#> [17] "Panel_01_Outputs_BP_1249_[4-20mA]"        
#> [18] "Panel_01_Outputs_BT_1746_[PT100]"         
#> [19] "AC_Battery_Outputs_BT_1506"

Created on 2021-03-28 by the reprex package (v1.0.0.9002)

yes, exactly, thank you very much, so it needs \

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.