V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
AntiGameZ
V2EX  ›  问与答

一个正则表达式的问题

  •  
  •   AntiGameZ · Aug 4, 2010 · 4916 views
    This topic created in 5758 days ago, the information mentioned may be changed or developed.
    有一个问题,怎么也想不明白:

    文本是这样的:

    Name: Jim
    Position: VP

    Name: Tom
    Position: PM

    Name: Jim
    Position: VP

    Name: Jerry
    Position: CTO

    Name: Jim
    Position: VP

    我想找寻Name为Jim的人,并将下一行的Position改为CEO,即将所有的

    Name: Jim
    Position: VP

    改为
    Name: Jim
    Position: CEO

    如果只用正则表达式(只用正则表达式,不借助如Python,Java等程序语言的帮助)有没有可能实现我需要的这个替换呢?谢谢
    8 replies    1970-01-01 08:00:00 +08:00
    Livid
        1
    Livid  
    MOD
    PRO
       Aug 4, 2010
    这个貌似不用正则,普通的查找替换就可以完成了啊?
    AntiGameZ
        2
    AntiGameZ  
    OP
       Aug 4, 2010
    是的,其实这个问题是别人问我的,我图省事就直接用查找替换的方式做好给别人了。现在想想很纠结,感觉只用正则是可以做的,但是在RegexBuddy里折腾了1个多小时,愣是没有搞出来。
    Livid
        3
    Livid  
    MOD
    PRO
       Aug 4, 2010
    放弃吧,正则不是用来解决这种简单小问题的。

    试试看用正则去分析 web server log,那样的复杂场合才是正则的用武之地。
    AntiGameZ
        4
    AntiGameZ  
    OP
       Aug 4, 2010
    我写的例子可能有些简化过头了。真实处理的问题是一个有关工作流流转的东东

    呵呵

    PS:问下livid你的Macbook Pro什么型号/配置,谢谢
    Livid
        5
    Livid  
    MOD
    PRO
       Aug 4, 2010
    MB166,两年的老机器了。

    http://bebefore.com/apple-macbook-pro-mb166/

    Unibody 面世之前的最后一代。
    bighearted
        6
    bighearted  
       Aug 4, 2010
    举的例子是完全匹配,涉及不到正则啊
    Livid
        7
    Livid  
    MOD
    PRO
       Aug 4, 2010
    恩,用常量去取代常量,是不需要正则的。

    正则的用途是用常量去取代变量,或是把变量变换位置。每次正则运行的时候,有可能替换操作完全不执行,因为输入的内容是不确定的。
    rex
        8
    rex  
       Sep 9, 2010
    莫非是这样?
    http://img.ly/22RY
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1089 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 23:15 · PVG 07:15 · LAX 16:15 · JFK 19:15
    ♥ Do have faith in what you're doing.