在编辑器中动态替换字符串

时间:2017-02-01 18:05:43

标签: regex excel dynamic replace notepad++

我正在寻找一个解决方案: 我想将特定文本替换为其他格式化字符串

实施例。

  

从标签中选择*,其中col类似于'%ab-de%' =>从标签中选择*   其中regexp(col,' ab-de(| $ | \。\:)')

     

从标签中选择*,其中col类似于'%9-01%' =>从标签中选择*   其中regexp(col,' 9-01(| $ | \。\:)'

所以在这里,基本上我想在%ab-de or 9-01

之间替换字符串(x

=>需要在regexp第二个参数中放置完全相同的字符串。 (regexp(col, 'x( |$|\.\: )'

我知道必须有某种方法来完成这项工作 - 但无法弄清楚如何完成。

在记事本++或Excel或其他编辑器中使用正则表达式或某些宏

1 个答案:

答案 0 :(得分:1)

使用Notepad ++:

  • 控制 + ħ
  • 找到:(\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