2017-02-22 31 views
0

у меня есть этот скрипт в моей странице PHP:PhpStorm: как я могу заменить конкретное слово с регулярным выражением

<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;"> 

В PhpStorm I Ctrl + Shift + R заменить все REGEX на <?php echo __("REGEX") ?>, но не линии содержащий в __ функции

Я использовал выражение "(?m)^(?!.*\__\b).*$", чтобы выбрать все строки, которые не содержат __ функцию, и я использую .*add-new-head.* выражение для выбора атрибута, чтобы помочь мне изменить значение.

Вопрос: как я могу комбинировать первое и второе выражения точно, чтобы заменить все REGEX на <?php echo __("REGEX") ?>?

+0

ожидаются выход? –

+0

не о выходе, я просто хочу перекомпостировать все REGEX в моем проекте с помощью __ («REGEX»), у меня есть 50000 слов вроде этого, и я думаю, что если я смогу сделать замену, это будет круто – MoxGeek

ответ

1

Найти (REGEX)$, предполагая, что REGEX всегда находится в конце строки без символов после него.

Затем заменить на <?php echo __("\1") ?>, где \1 соответствует первой группе захвата.

UPDATE:

Так как вы хотите, чтобы захватить все между "add-new-head"> и следующим тегом запуска < вы можете использовать следующее.

Поиск: ("add-new-head">)([^<\s]+)

Заменить: \1<?php echo __("\2") ?>

Выход:

<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;"> 

вы можете найти демо here

+0

моя идея была не просто Текст «Regex», но что-нибудь после add-head ...; но это нормально ... – MoxGeek

+0

@MoxGeek проверить обновленный ответ –

2

Это должно работать.

Проверено на Notepad ++

Поиск по:

REGEX$ 

Заменить:

__ ("Regex")

Выход:

<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;">