Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 在vim字符串中添加括号_String_Unix_Vim_Parentheses - Fatal编程技术网

String 在vim字符串中添加括号

String 在vim字符串中添加括号,string,unix,vim,parentheses,String,Unix,Vim,Parentheses,我在vim字符串中使用括号时遇到了一些问题。我只需要在3位数字周围添加一组括号,但我似乎找不到正确放置它们的位置。比如说,;我必须将它们放在电话号码周围,例如:2015551212 现在我有一个字符串来分隔数字,并在它们之间加上连字符。比如,201 555-1212。所以我只需要括号。最终结果应该如下所示:(201)555-1212 到目前为止,我拥有的字符串是:s/\(\d\{3}\)\(\d\{3}\)/\1\2-/g 我该怎么做呢 谢谢只需在替换中添加\1周围的参数即可 s/\(\d\{3

我在vim字符串中使用括号时遇到了一些问题。我只需要在3位数字周围添加一组括号,但我似乎找不到正确放置它们的位置。比如说,;我必须将它们放在电话号码周围,例如:
2015551212

现在我有一个字符串来分隔数字,并在它们之间加上连字符。比如,<代码>201 555-1212。所以我只需要括号。最终结果应该如下所示:
(201)555-1212

到目前为止,我拥有的字符串是:
s/\(\d\{3}\)\(\d\{3}\)/\1\2-/g

我该怎么做呢


谢谢

只需在替换中添加\1周围的参数即可

s/\(\d\{3\}\)\(\d\{3\}\)/(\1) \2-/g
如果您想反向执行,并将“(800)555-1212”更改为“8005551212”,您可以使用如下内容:

s/(\(\d\d\d\))\ \(\d\d\d\)-\(\d\d\d\d\)/\1\2\3/g

您可以使用
\d\d\d
,而不是
\d\{3\}
,但这更麻烦键入。

非常感谢您的帮助。我也很好奇,想知道有人怎样才能扭转这个过程。因此,不是使用s/(\d\{3\})(\d\{3\})/(\1)\2-/g来获得:(201)555-1212。您能像这样简单地删除paren、空格和连字符吗?s/(\d\{3\})(\d\{3\})/\1\2/g@ehstudent要删除括号/破折号等,您不需要这么复杂的命令,只需
:s/\D//g
很高兴它对您有用。你可以考虑一下。如果你的档案里只有电话号码,肯特的建议将有助于扭转这个过程。它会删除所有非数字字符。@Markku K这是真的,而Kents的建议很有用。不幸的是,它只适用于整个文件,只包含数字/数字。我有一个包含字符和数字的文件。所以,我不清楚如何使用复杂字符串来逆转这个过程。@Markku我尝试了你在回答中修改过的命令,效果很好。我个人认为,虽然使用\d\{3\}可以节省时间或压缩时间,但使用\d\d\d似乎是一种更简单的布局。谢谢你的帮助。我很感激。