2017-02-01 8 views
0

Я ищу одно решение: Я хотел заменить конкретный текст в другой отформатированную строкуДинамически заменить строку в редакторе

Ex.

выберите * из вкладки, где цв как '% ab-de%' => выберите * из вкладки где регулярное выражение (столбец 'ab-de (| $ |. \ \ :))

выберите * из вкладка, где цв как '% 9-01%' => выберите * из вкладки где регулярных выражений (цв '9-01 (| $ | \ \ :).

так что здесь, в основном я хотел бы заменить строка (ab-de or 9-01) независимо от% x%

=> необходимо разместить точную строку в регулярном выражении 2-го аргумента. (regexp(col, 'x(|$|\.\:)'

Я знаю, что должен быть какой-то способ, чтобы получить эту done-, но не в состоянии понять, каким образом.

либо с помощью регулярных выражений или некоторый макрос в Notepad ++ или Excel или какой-либо другой редактор

ответ

1

С Notepad ++ :

  • Ctrl + H
  • Найти что: (\w+)\s+like\s+'%(.+?)%'
  • Заменить: REGEXP\($1,'$2\(|$|\\.\\:\)'\)
  • Заменить все

Примечание: круглые скобки должны быть экранированы в сменной части

Я думаю, что вы хотите (|$|\.|\:) в сменной части, так:

  • Заменить на: REGEXP\($1,'$2\([\\ .\\:]|$\)'\)

    делает работу

Объяснение:

(   : Start capture group 1 
    \w+  : 1 or more alphanum or _ (ie. word character) 
)   : end group 
\s+   : 1 or more spaces 
like  : literally the word like 
\s+   : 1 or more spaces 
'   : literally a single quote 
%   : literally a percent sign 
(   : Start capture group 2 
    .+?  : 1 or more any character 
)   : end group 
%   : literally a percent sign 
'   : literally a single quote 

Запасная часть:

REGEXP  : literally 
\(   : opening parenthesis 
    $1  : content of group 1, here the name of the column 
    ,   : a comma 
    '$2'  : content of group 2, here what is between % and % 
    ,   : a comma 
    \(  : opening parenthesis 
    [ .:]|$ : literally [ .:]|$, that represent in the resulting regex a space or a dot or a colon or end of line 
    \)  : closing parenthesis 
\)   : closing parenthesis 
+0

Ницца, @Toto! Не могли бы вы объяснить вкратце, как это работает? – inityk

+1

@inityk: см. Мое редактирование – Toto