以下表达式的正则表达式

Regex formula for following expression

我有一个用逗号分隔的数组,我希望每个单词都用双引号替换(对于每个单词),如下所示:

a1.large,a2.large,a3.large,b4.medium

应该变成:

"a1.large","a2.large","a3.large","b4.medium"

谁能告诉我如何在 notepad++ 中使用正则表达式查找和替换。

在记事本++中,执行以下操作:

  • CTRL + H
  • 设置搜索mode:Regular表达式
  • 找到(\w+(?:\s*\w+)*\s*(?=,|$))
  • 将匹配项替换为 ""

解释:

  • \w+ - 匹配 1 个或多个单词字符,尽可能多
  • (?:\s*\w+)* - 匹配 0 次或多次出现的 0+ 空格后跟 1+ 单词字符。这个 submattern 将允许我们匹配多个由逗号之间的空格分隔的单词。
  • \s* - 匹配 0 个或多个空格
  • (?=,|$) - 如果后跟 , 或行尾
  • 则与当前位置匹配的正前瞻
  • () - 到目前为止匹配的所有内容都将在第 1 组中捕获

演示

匹配单词并用引号匹配替换:

Find: \w+
Replace: "[=10=]"

如果逗号之间可能有多个单词,例如 "car, car keys, wallet" 更改查找正则表达式:

Find: \w+( +\w+)*
Replace: "[=11=]"

[=13=] 是第 0 组,也就是整场比赛。

  • Ctrl+H
  • 查找内容:[^,\r\n]+
  • 替换为:"[=13=]"
  • 检查 环绕
  • 检查 正则表达式
  • 全部替换

解释:

[^,\r\n]+       # 1 or more any character that is not a comma or linebreak

替换:

"[=11=]"            # the whole match surrounded with quotes

屏幕截图(之前):

截图(之后):

查找:[\w.]*
全部替换:"[=11=]"