#include <MsgBoxConstants.au3> ; to declare the Constants of MsgBox
Local $sRegex = "(?xsi) <R-PORT-PROTOTYPE .*? <short-name>PQR</short-name> " & @CRLF & _
" " & @CRLF & _
" (?:" & @CRLF & _
" (?:" & @CRLF & _
" (?(1) (?!) )" & @CRLF & _
" .*? " & @CRLF & _
" <V>" & @CRLF & _
" ( .*? ) # (1)" & @CRLF & _
" </V>" & @CRLF & _
" .*? " & @CRLF & _
" <PARAMETER-REF [ ] DEST="PARAMETER-DATA-PROTOTYPE"> .*? MNO1</PARAMETER-REF>" & @CRLF & _
" )" & @CRLF & _
" | " & @CRLF & _
" (?:" & @CRLF & _
" (?(2) (?!) )" & @CRLF & _
" .*? " & @CRLF & _
" <V>" & @CRLF & _
" ( .*? ) # (2)" & @CRLF & _
" </V>" & @CRLF & _
" .*? " & @CRLF & _
" <PARAMETER-REF [ ] DEST="PARAMETER-DATA-PROTOTYPE"> .*? MNO2</PARAMETER-REF>" & @CRLF & _
" )" & @CRLF & _
" ){1,2}" & @CRLF & _
" .* " & @CRLF & _
""
Local $sString = " <R-PORT-PROTOTYPE **************>" & @CRLF & _
" <SHORT-NAME>PQR</SHORT-NAME>" & @CRLF & _
" <REQUIRED-COM-SPECS>" & @CRLF & _
" <PARAMETER-REQUIRE-COM-SPEC>" & @CRLF & _
" <APPLICATION-VALUE-SPECIFICATION>" & @CRLF & _
" <SHORT-LABEL>abc1</SHORT-LABEL>" & @CRLF & _
" <SW-VALUES-PHYS>" & @CRLF & _
" <V>80</V>" & @CRLF & _
" </SW-VALUES-PHYS> " & @CRLF & _
" </APPLICATION-VALUE-SPECIFICATION>" & @CRLF & _
" <PARAMETER-REF DEST="PARAMETER-DATA-PROTOTYPE">**************/MNO1</PARAMETER-REF>" & @CRLF & _
" </PARAMETER-REQUIRE-COM-SPEC>" & @CRLF & _
" <PARAMETER-REQUIRE-COM-SPEC>" & @CRLF & _
" <APPLICATION-VALUE-SPECIFICATION>" & @CRLF & _
" <SHORT-LABEL>abc2</SHORT-LABEL>" & @CRLF & _
" <SW-VALUES-PHYS>" & @CRLF & _
" <V>-80</V>" & @CRLF & _
" </SW-VALUES-PHYS> " & @CRLF & _
" </APPLICATION-VALUE-SPECIFICATION> " & @CRLF & _
" <PARAMETER-REF DEST="PARAMETER-DATA-PROTOTYPE">**************/MNO2</PARAMETER-REF>" & @CRLF & _
" </PARAMETER-REQUIRE-COM-SPEC>" & @CRLF & _
" </REQUIRED-COM-SPECS>" & @CRLF & _
" </R-PORT-PROTOTYPE>" & @CRLF & _
"" & @CRLF & _
""
Local $sSubst = "MNO1=$1 , MNO2=$2"
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