【问题标题】:Regular Expression to Find/Replace in a Fix Length File在固定长度文件中查找/替换的正则表达式
【发布时间】:2009-04-08 18:23:27
【问题描述】:

所以我有这个固定长度行的大文件。我想在字符行位置上进行查找和替换。

例子:

xxxxxxx     010109 xxxxxx xxxxx
xxxxxxx     010309 xxxxxx xxxxx
xxxxxxx     021506 xxxxxx xxxxx
xxxxxxx     041187 xxxxxx xxxxx

所以在这种情况下,我希望找到从位置 13 到位置 18 的任何值,并将其替换为 010107。

任何人都可以帮我解决如何为此制定正则表达式吗?

非常感谢。

【问题讨论】:

    标签: regex notepad++ replace


    【解决方案1】:

    已编辑:经过测试,Notepad++ 不支持定义确切字符数的 {n} 方法

    这行得通,在您的数据上进行了测试:

    查找:

    ^(............)......
    

    替换:

    \1010107
    

    【讨论】:

      【解决方案2】:

      试试这个搜索模式:

      ^(.{12})\d{6}
      

      这是替换表达式:

      \1010107
      

      【讨论】:

        【解决方案3】:

        s/^(?:.{12})(.{6})(?:.*)$/NNNNNN/

        将 NNNNNN 替换为所需的数字

        【讨论】:

          【解决方案4】:

          类似这样的:

          sed 's/^\(.\{12\}\).\{6\}\(.*\)$/\1010107\2/'

          应该做的伎俩(转义以供命令行使用)

          【讨论】:

            【解决方案5】:

            只是为了记录,您不需要这样的正则表达式。一个简单的拆分,或者某种解包函数,就可以了。

            【讨论】:

              猜你喜欢
              • 2020-09-14
              • 2022-09-23
              • 2012-05-17
              • 1970-01-01
              • 2012-06-06
              • 1970-01-01
              • 1970-01-01
              • 2014-11-18
              • 2020-04-22
              相关资源
              最近更新 更多