【问题标题】:How to Find/replace with Regular Expressions and Wildcards in Notepad++如何在 Notepad++ 中查找/替换正则表达式和通配符
【发布时间】:2016-06-22 00:08:34
【问题描述】:

我需要一些帮助来识别查找/替换正则表达式,我可以使用它来查找在管道之间有两个日期的数据字符串,并在 Notepad++ 中用新日期替换第一个日期。我已经做了一些研究,但不要遵循如何做到这一点。不得已,我将手动替换它们,但这并不理想。

文件的每一行在下面指定的日期部分之前和之后都有其他信息;但是,我希望这可以被忽略,因为我们只想对日期使用查找/替换。

这是文件中可能存在的 3 行。

|05/28/2016|12/31/2050|
|04/13/2014|12/31/2050|
|12/17/2013|12/31/2050|

我正在寻找一个表达式,它允许我用我指定的替代日期查找/替换第一组管道中的第一个日期。

找到这个...

|Wildcard Section|12/31/2050|

用这个替换...

|6/1/2016/12/31/2050|

这个可以吗?

谢谢,

布兰登

【问题讨论】:

    标签: regex notepad++


    【解决方案1】:

    只要 2016 年 6 月 1 日不变或不是变量,您就可以这样做

    关于查找内容:字段添加(.*)(\d{2}/\d{2}/\d{4})(\|\d{2}/\d{2}/\d{4}.*)

    在替换为:字段添加($1)6/1/2016($3)

    在顶部的正则表达式中,我们为我们需要的每个部分将匹配分成 3 部分(它们分别存储在 $1、$2 和 $3 中)。我们需要替换中间日期,上面的 $2 替换语句就可以了。

    查找/替换窗口配置截图: http://prntscr.com/bjcnf8

    【讨论】:

    • 谢谢!我会测试一下。如果我需要在更换日期中添加零,它会改变吗? IE。我注意到 2016 年 6 月 1 日,但它确实应该作为 06/01/2016 出现在文件中。
    • 成功!这很好用(一旦我确定我把它放在窗户上)。我更新了替换字符串以根据需要添加其他零而没有问题。
    • 最后一个想法是确保我遵循这是如何设置的...开头部分“.*”开始通配符部分,“\d 表示 0-9 整数,{2} 表示两个其中,\| 表示字面意义上的管道,然后狂野的结尾是 .* 再次,对吗?
    • 你说的都是正确的,除了“\| 表示管道”。 \|是逃避|自从|表示正则表达式中的“或”文字。我们的意图是保持中间|在最终输出上,所以我们需要转义它。其实你不需要逃避它,只需替换 \|带点“。”,它应该仍然有效。
    • 太棒了,说得通。节省了我几个小时的时间。谢谢!
    猜你喜欢
    • 2018-09-05
    • 2014-10-26
    • 2017-01-28
    • 2015-01-11
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    相关资源
    最近更新 更多