Hello, @ronen-neumark and All,
OK ! So, given this template :
<programme start="20201019000000" stop="20201019003000" channel="4" external_id="4_FR2_11414656841971">
...
...
...
</programme>
<programme start="20201019003000" stop="20201019010000" channel="4" external_id="4_FR2_255393467237">
...
...
...
</programme>
<programme start="20201019010000" stop="20201019013000" channel="4" external_id="4_FR2_347177048622">
...
...
...
</programme>
<programme start="20201019013000" stop="20201019020000" channel="4" external_id="4_FR2_4358572412818">
...
...
...
</programme>
The following regex S/R would replace the external_id value with the litteral string 4_FR9_99999999999999, only one time out of two !
SEARCH (?-s)(<programme.+external_id=").+(?s)(".+?</programme>\R<programme.+?</programme>)
REPLACE ${1}4_FR9_99999999999999${2}
And should give the expected result :
<programme start="20201019000000" stop="20201019003000" channel="4" external_id="4_FR9_99999999999999">
...
...
...
</programme>
<programme start="20201019003000" stop="20201019010000" channel="4" external_id="4_FR2_255393467237">
...
...
...
</programme>
<programme start="20201019010000" stop="20201019013000" channel="4" external_id="4_FR9_99999999999999">
...
...
...
</programme>
<programme start="20201019013000" stop="20201019020000" channel="4" external_id="4_FR2_4358572412818">
...
...
...
</programme>
My regex also works with this simplified example !
Best Regards,
guy038