【问题标题】:Regex how to replace part of a string with another正则表达式如何用另一个替换字符串的一部分
【发布时间】:2013-09-30 10:30:39
【问题描述】:

我需要用其他字符串替换部分文本。

例子:

{abc,bcd},{ def,ghi}

我想将abcdef 替换为x:abcx:def

我想替换左大括号中的第一个值。 但我不知道我会得到什么价值。

所以为了替换我需要识别左大括号后的字母,我可以通过使用/\{.*?\,/这个模式来识别它

但我现在不知道如何用文本替换匹配的字符串。我该怎么做?

答案不必与 notepad++ 相关。您可以使用任何语言来解释如何操作。

【问题讨论】:

  • 你想要的还是有点暧昧...
  • 是否删除def 之前的空格?
  • @M42:空间不是问题。肯特的回答很好。但我想将值 abc 更改为“abc”。所以我正在努力。谢谢
  • 那么,你想加双引号 arround abc 还是 def?
  • @M42:两者都有。正如我所说,可能有很多这样的文本。紧接在大括号之后

标签: java javascript regex notepad++


【解决方案1】:

在 Notepad++ 中,在 abc 或 def 中添加双引号:

搜索什么:\{\s*(\w+)
替换为:{x:"$1"

这会将{abc,bcd},{ def,ghi} 更改为{x:"abc",bcd},{x:"def",ghi}

或者如果它可以是大括号后面的任何字符但逗号:

搜索什么:\{([^,]+)
替换为:{x:"$1"

【讨论】:

    【解决方案2】:

    您甚至不需要正则表达式。

    找到:

    {
    

    替换为:

    {"x":
    

    在终端测试,sed使用BRE,所以{没有特殊含义。

    kent$ echo "{abc,bcd},{ def,ghi}"|sed 's/{/{"x":/g'
    {"x":abc,bcd},{"x": def,ghi}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多