#include <MsgBoxConstants.au3> ; to declare the Constants of MsgBox
Local $sRegex = "(?m)(<Group id="\d+">\n\t\t\t<Name>)(\w+)_(\w+)(<\/Name>\n\t\t\t<Description>)([\w+\s]+)\s-\s([\w+\s]+)(<\/Description>)"
Local $sString = " <Group id="100">" & @CRLF & _
" <Name>generalAlarm_Group01</Name>" & @CRLF & _
" <Description>Group General Alarm 01</Description>" & @CRLF & _
" <Type>poll</Type>" & @CRLF & _
" <Content multipleGet="true">" & @CRLF & _
" <Param>100</Param>" & @CRLF & _
" <Param>101</Param>" & @CRLF & _
" <Param>103</Param>" & @CRLF & _
" <Param>104</Param>" & @CRLF & _
" <Param>120</Param>" & @CRLF & _
" <Param>121</Param>" & @CRLF & _
" </Content>" & @CRLF & _
" </Group>" & @CRLF & _
" <Group id="110">" & @CRLF & _
" <Name>generalConfig_Group01</Name>" & @CRLF & _
" <Description>Group General Config 01</Description>" & @CRLF & _
" <Type>poll</Type>" & @CRLF & _
" <Content multipleGet="true">" & @CRLF & _
" <Param>105</Param>" & @CRLF & _
" <Param>106</Param>" & @CRLF & _
" <Param>107</Param>" & @CRLF & _
" <Param>108</Param>" & @CRLF & _
" <Param>109</Param>" & @CRLF & _
" <Param>110</Param>" & @CRLF & _
" <Param>111</Param>" & @CRLF & _
" <Param>112</Param>" & @CRLF & _
" <Param>113</Param>" & @CRLF & _
" </Content>" & @CRLF & _
" </Group>" & @CRLF & _
" " & @CRLF & _
" <Group id="1000">" & @CRLF & _
" <Name>firstPriorityAlarmConfig_Group1000</Name>" & @CRLF & _
" <Description>First Priority Alarm Config Table - Group 1000</Description>" & @CRLF & _
" <Type>poll</Type>" & @CRLF & _
" <Content multipleGet="true">" & @CRLF & _
" <Param>1000</Param>" & @CRLF & _
" </Content>" & @CRLF & _
" </Group>" & @CRLF & _
" <Group id="2000">" & @CRLF & _
" <Name>secondPriorityAlarmConfig_Group2000</Name>" & @CRLF & _
" <Description>Second Priority Alarm Config Table - Group 2000</Description>" & @CRLF & _
" <Type>poll</Type>" & @CRLF & _
" <Content multipleGet="true">" & @CRLF & _
" <Param>2000</Param>" & @CRLF & _
" </Content>" & @CRLF & _
" </Group>" & @CRLF & _
" <Group id="3000">" & @CRLF & _
" <Name>thirdPriorityAlarmConfig_Group3000</Name>" & @CRLF & _
" <Description>Third Priority Alarm Config Table - Group 3000</Description>" & @CRLF & _
" <Type>poll</Type>" & @CRLF & _
" <Content multipleGet="true">" & @CRLF & _
" <Param>3000</Param>" & @CRLF & _
" </Content>" & @CRLF & _
" </Group>"
Local $sSubst = "$1$3_$2$4$6 - $5$7"
Local $sResult = StringRegExpReplace($sString, $sRegex, $sSubst)
MsgBox($MB_SYSTEMMODAL, "Result", $sResult)
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for AutoIt, please visit: https://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm