python - 如何将某些行文本、可变位置移动到特定列

标签 python search notepad++ text-formatting

我有一个包含数百行的文本文件,我想将每行的特定结束 block (可变的开始长度,“AS”之后的所有内容)移动到特定的列位置。

这是我需要定期执行的任务。我现在在 Notepad++ 中使用 find-n-replace 操作进行这种特殊的格式化,但最后的步骤是繁琐的手动制表符排列。

原始模式如下(这是在通过 find-n-replace 操作进行一些初始格式化操作之后):

red.id AS red_identifier
red.c AS red_color
mbr.red_mbr AS red_member
stat.red_stat AS red_status

我希望格式如下,所有“AS ...”部分从 x 列开始:

red.id                AS red_identifier
red.c                 AS red_color
mbr.red_mbr    作为 red_member
stat.red_stat     AS red_status

任何帮助将非常感激! Notepad++ 可以处理这个问题吗? Python(我唯一知道的语言)脚本是否合适?

最佳答案

您可以通过两步完成此操作:

  1. 将制表符宽度修改为特定宽度,这里我使用的是25 enter image description here
    • Ctrl+H
    • 查找内容:\h+(?=AS\b)
    • 替换为:\t
    • 选中环绕
    • 检查正则表达式
    • 全部替换

说明:

\h+         # 1 or more horizontal spaces
(?=         # start lookahead, zro-length assertion to make sure we have after:
  AS        # literally AS
  \b        # word boundary to make sure we don't match AS... (i.e. Asterisk)
)           # end lookahead

给定示例的结果:

red.id                   AS red_identifier
red.c                    AS red_color
mbr.red_mbr              AS red_member
stat.red_stat            AS red_status 

结果:

enter image description here

关于python - 如何将某些行文本、可变位置移动到特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54540291/

相关文章:

python - 在 Python 中找不到 winsound

c# - 如何在 asp.net mvc 4 中创建具有局部 View 的搜索功能

database - 使用可以经常更新的字段创建 Lucene 索引并按此字段过滤结果的最佳方法

Notepad++ 。用回车替换点和空格

regex - 如何使用正则表达式删除 2 行模式之间的行?

python - Numpy:沿轴应用返回错误:使用序列设置数组元素

python - Fabric 导入错误: cannot import name 'isMappingType' with Python 2. 7

python - Django 应用程序的用法是什么?

javascript - 使用 Javascript 的简单搜索功能

cmd - 如何让Notepad++根据名称运行脚本?