Regex Find&替换 - 查找任何字符和特定长度的字符串,然后替换1个字符

时间:2012-09-06 05:22:25

标签: regex

我有一个包含如下数字的文档:

0300010000000394001001,27
0300010000000394001002,0
0300010000000394002001,182
0300010000000394002002,51
0300010000000394003001,156
0300010000000394003002,40

我需要找到新的行字符,并根据字符串长度替换为多个空格。 如果它有24个这样的字符 - 0300010000000394001002,0那么我需要用5个空格替换末尾的新行字符。 如果它有25个这样的字符 - 0300010000000394002002,51那么我需要用4个空格替换末尾的新行字符,依此类推。

在我的文本编辑器中,我可以使用查找和替换。我用^(.|\s){24}$搜索24个字符的行长度 - 但这显然会替换整行,我只需要在最后替换新行字符。

我想在^(.|\s){24}$之后指定一个换行符。这可能吗?

1 个答案:

答案 0 :(得分:1)

听起来你需要两件事。

  1. Multi-line Mode(请参阅“使用^和$作为行首和......”)
  2. 逆向引用
  3. 支持正则表达式的大多数编辑自然会支持这些,但您必须告诉我们您使用的编辑器是否具体。在不知道你正在使用什么编辑器的情况下,我只能说你想要做以下几种组合:

    regex           subst
    -----           -----
    ^(.{24})\n      $1     <-- there are spaces here
    ^(.{24})^M      \1     <-- there are spaces here
    ^(.{24})\s        ^^^^^