MoxGeek
MoxGeek

Reputation: 458

PhpStorm: how can I replace specific word with regex

I have this script in my php page :

<div id="add-new-head"><?php echo __("EDIT_MY_ACCOUNT_DETAILS") ?>
<a href="javascript:{}" title="Close" id="closeBox" onClick="document.getElementById('add-new').style.display='none';"><div class="close">X</div></a></div>
 <div class="inside">    
    <div id="mess" style="position: relative; top: 0;">     
....    ....    ....
    <div id="add-new-head"><?php echo __("EDIT_MY_ACCOUNT_DETAILS") ?>
<a href="javascript:{}" title="Close" id="closeBox" onClick="document.getElementById('add-new').style.display='none';"><div class="close">X</div></a></div>
 <div class="inside">    
    <div id="mess" style="position: relative; top: 0;">     

        ....    ....    ....
    <div id="add-new-head">REGEX
<a href="javascript:{}" title="Close" id="closeBox" onClick="document.getElementById('add-new').style.display='none';"><div class="close">X</div></a></div>
 <div class="inside">    
    <div id="mess" style="position: relative; top: 0;">     

                ....    ....    ....
    <div id="add-new-head"><?php echo __("REGEX") ?>
<a href="javascript:{}" title="Close" id="closeBox" onClick="document.getElementById('add-new').style.display='none';"><div class="close">X</div></a></div>
 <div class="inside">    
    <div id="mess" style="position: relative; top: 0;">     

                ....    ....    ....
    <div id="add-new-head">REGEX
<a href="javascript:{}" title="Close" id="closeBox" onClick="document.getElementById('add-new').style.display='none';"><div class="close">X</div></a></div>
 <div class="inside">    
    <div id="mess" style="position: relative; top: 0;"> 

In PhpStorm I Ctrl + Shift + R to replace all REGEX to <?php echo __("REGEX") ?>, but not the lines containing the __ function

I've used the "(?m)^(?!.*\__\b).*$" expression to select all lines that don't contain __ function and I use .*add-new-head.* expression to select the attribute to help me change the value.

My question is how I can combine the first and the second expression exactly to replace all REGEX with <?php echo __("REGEX") ?> ?

Upvotes: 0

Views: 191

Answers (2)

Abdul Hameed
Abdul Hameed

Reputation: 992

Find (REGEX)$ assuming REGEX is always at the end of line with no characters after it.

Then replace with <?php echo __("\1") ?> where \1 corresponds to the first capture group.

UPDATE:

Since you want to capture everything between "add-new-head"> and the next tag start < you can use the following.

Find : ("add-new-head">)([^<\s]+)

Replace with: \1<?php echo __("\2") ?>

Output:

<div id="add-new-head"><?php echo __("EDIT_MY_ACCOUNT_DETAILS") ?>
<a href="javascript:{}" title="Close" id="closeBox" onClick="document.getElementById('add-new').style.display='none';"><div class="close">X</div></a></div>
 <div class="inside">    
    <div id="mess" style="position: relative; top: 0;">     
....    ....    ....
    <div id="add-new-head"><?php echo __("EDIT_MY_ACCOUNT_DETAILS") ?>
<a href="javascript:{}" title="Close" id="closeBox" onClick="document.getElementById('add-new').style.display='none';"><div class="close">X</div></a></div>
 <div class="inside">    
    <div id="mess" style="position: relative; top: 0;">     

        ....    ....    ....
    <div id="add-new-head"><?php echo __("REGEX") ?>
<a href="javascript:{}" title="Close" id="closeBox" onClick="document.getElementById('add-new').style.display='none';"><div class="close">X</div></a></div>
 <div class="inside">    
    <div id="mess" style="position: relative; top: 0;">     

                ....    ....    ....
    <div id="add-new-head"><?php echo __("REGEX") ?>
<a href="javascript:{}" title="Close" id="closeBox" onClick="document.getElementById('add-new').style.display='none';"><div class="close">X</div></a></div>
 <div class="inside">    
    <div id="mess" style="position: relative; top: 0;">     

                ....    ....    ....
    <div id="add-new-head"><?php echo __("REGEX") ?>
<a href="javascript:{}" title="Close" id="closeBox" onClick="document.getElementById('add-new').style.display='none';"><div class="close">X</div></a></div>
 <div class="inside">    
    <div id="mess" style="position: relative; top: 0;"> 

you can find the demo here

Upvotes: 1

Eduardo Lynch Araya
Eduardo Lynch Araya

Reputation: 824

This Should Work.

Tested on Notepad++

Search By:

REGEX$

Replace with:

__("REGEX")

Output:

<div id="add-new-head"><?php echo __("EDIT_MY_ACCOUNT_DETAILS") ?>
<a href="javascript:{}" title="Close" id="closeBox" onClick="document.getElementById('add-new').style.display='none';"><div class="close">X</div></a></div>
 <div class="inside">    
    <div id="mess" style="position: relative; top: 0;">     
....    ....    ....
    <div id="add-new-head"><?php echo __("EDIT_MY_ACCOUNT_DETAILS") ?>
<a href="javascript:{}" title="Close" id="closeBox" onClick="document.getElementById('add-new').style.display='none';"><div class="close">X</div></a></div>
 <div class="inside">    
    <div id="mess" style="position: relative; top: 0;">     

        ....    ....    ....
    <div id="add-new-head"> __"REGEX" 
<a href="javascript:{}" title="Close" id="closeBox" onClick="document.getElementById('add-new').style.display='none';"><div class="close">X</div></a></div>
 <div class="inside">    
    <div id="mess" style="position: relative; top: 0;">     

                ....    ....    ....
    <div id="add-new-head"><?php echo __("REGEX") ?>
<a href="javascript:{}" title="Close" id="closeBox" onClick="document.getElementById('add-new').style.display='none';"><div class="close">X</div></a></div>
 <div class="inside">    
    <div id="mess" style="position: relative; top: 0;">     

                ....    ....    ....
    <div id="add-new-head"> __"REGEX" 
<a href="javascript:{}" title="Close" id="closeBox" onClick="document.getElementById('add-new').style.display='none';"><div class="close">X</div></a></div>
 <div class="inside">    
    <div id="mess" style="position: relative; top: 0;"> 

Upvotes: 2

Related Questions