红联Linux门户
Linux帮助
当前位置: 红联Linux门户 > Ubuntu

[已解决]正则表达式

发布时间:2009-12-16 09:34:02来源:红联作者:zhaoyuzhong3694
[i=s] 本帖最后由 zhaoyuzhong3694 于 2009-12-16 13:23 编辑 [/i]

:s/\(squares\) and \(breeze\)/\2 and \1
琢磨了半天没搞清它的结构,兄弟们谁帮忙解释下?
\与\(squares\)有什么不同?
文章评论

共有 11 条评论

  1. shen.yhx 于 2010-05-15 01:34:48发表:

    积累知识中

  2. chiyb 于 2010-04-26 14:23:04发表:

    引用:
    这个是在vim中用的替换命令
    应该这样写
    :s /\(squares\) and \(breeze\)/\2 and \1
    大概意思就是在正文光标所在行中查找字符串“squares and breeze”,然后将“squares”定义为标签1,将“breeze”定义为标签2, ...
    hy434 发表于 2009-12-16 12:54

  3. 王中云 于 2009-12-16 21:44:20发表:

    学习

  4. shenhao0129 于 2009-12-16 21:27:14发表:

    还没有正式开始学习shell编程

  5. SageRoi 于 2009-12-16 17:28:14发表:

    学习了

  6. SageRoi 于 2009-12-16 17:27:50发表:

    学习了

  7. zhaoyuzhong3694 于 2009-12-16 13:21:58发表:

    多谢。
    就是\(squre\)是将这个字符串作为标签,后面引用时按它的出现次序,确定后边应用的序号。

  8. hy434 于 2009-12-16 12:54:11发表:

    这个是在vim中用的替换命令
    应该这样写
    :s /\(squares\) and \(breeze\)/\2 and \1
    大概意思就是在正文光标所在行中查找字符串“squares and breeze”,然后将“squares”定义为标签1,将“breeze”定义为标签2,在后面的替换部分就可以直接用 “\2” “\1”来引用刚才定义的标签的内容。
    那么\2 and \1 的意思就是将“squares” 与 "breeze"的位置互换。
    当然也可以直接这样写:
    :s /squares and breeze/breeze and squares
    就这个例子而言,它们所实现的功能是一样的。
    这下明白了吧。

  9. zhaoyuzhong3694 于 2009-12-16 11:07:11发表:

    就如同这个例子,书看了几遍这个地方,愣是没搞懂。

  10. hy434 于 2009-12-16 10:18:15发表:

    能在多给一点提示吗?上下文再多给出一些来。

  11. hy434 于 2009-12-16 10:16:27发表:

    \应该是精确匹配squares,\(squares\)这种方式没见过,不知道是怎么回事?