我需要用其他字符串替换部分文本。
例子:
{abc,bcd},{ def,ghi}
我想替换abc
anddef
到x:abc
and x:def
。
我想替换左大括号中的第一个值。但我不知道我会得到什么价值。
因此,为了替换,我需要识别左大括号后的字母,我可以通过使用这种模式来识别/\{.*?\,/
但我现在不知道如何用文本替换匹配的字符串。我该怎么做?
答案不必与 notepad++ 相关。您可以使用任何语言来解释如何操作。
我需要用其他字符串替换部分文本。
例子:
{abc,bcd},{ def,ghi}
我想替换abc
anddef
到x:abc
and x:def
。
我想替换左大括号中的第一个值。但我不知道我会得到什么价值。
因此,为了替换,我需要识别左大括号后的字母,我可以通过使用这种模式来识别/\{.*?\,/
但我现在不知道如何用文本替换匹配的字符串。我该怎么做?
答案不必与 notepad++ 相关。您可以使用任何语言来解释如何操作。
在 Notepad++ 中,添加双引号 arround abc 或 def:
搜索内容:\{\s*(\w+)
替换为:{x:"$1"
这将{abc,bcd},{ def,ghi}
变为{x:"abc",bcd},{x:"def",ghi}
或者如果它可以是大括号后的任何字符但逗号:
搜索内容:\{([^,]+)
替换为:{x:"$1"
你甚至不需要正则表达式来做到这一点。
寻找:
{
将其替换为:
{"x":
在终端测试, sed 使用BRE
,所以{
没有特殊含义。
kent$ echo "{abc,bcd},{ def,ghi}"|sed 's/{/{"x":/g'
{"x":abc,bcd},{"x": def,ghi}