【问题标题】:notepad++ puts text after a carriage return on a new linenotepad++ 将回车后的文本放在新行上
【发布时间】:2014-05-22 15:56:20
【问题描述】:

我有两个长度相等的文件 A 和 B。文件 A 中的第 n 行对应于文件 B 中的第 n 行。在文件 A 中,有时回车用于覆盖同一行的文本。在 notepad++ 中打开文件时,文件 A 的行数似乎比文件 B 多,因为回车后的文本位于新行上,并且 notepad++ 会增加行号。这使得在文件 A 和 B 之间很难找到对应的行。

一个例子

line number|File A    ||line number|File B
      1    |a\r\n     ||      1    |x\r\n
      2    |b\r       ||      2    |y\r\n
      3    |c\r       ||      3    |z\r\n
      4    |d\r\n     ||
      5    |e\r\n     ||

实际上这两个文件只有三行。 'a\r\n' 对应于 'x\r\n','b\rc\rd\r\n'(或简称为 'd\r\n')对应于 'y\r\n' 和 ' e\r\n' 对应于'z\r\n'。但是,在文件 A 中,由于回车,'b\rc\rd\r\n' 从第 2 行开始并在第 4 行结束。

notepad++ 是否可以应用回车,使得文件 A 只显示 'a' 和 'd' 和 'e'?如果不是,是否行号仅在换行符后递增,使得文件 A 和 B 之间的行号对齐?

【问题讨论】:

  • 这是你得到的一些遗留数据,儿子。

标签: notepad++ carriage-return line-numbers


【解决方案1】:

您只需删除所有 \r 字符即可快速对齐两个文件。转到“替换”,切换到扩展模式,然后将\r 替换为空。然后 [编辑]>[EOL 转换]>[Windows 格式] 返回到 \r\n 行尾(您将只剩下 \n 的行尾)。

如果您不想“应用”所有回车,则必须使用 RegEx。在替换中切换到“正则表达式”,并将其替换为空:

^.+\r(?!\n)

它将删除所有\r 后面没有\n 和整行。

【讨论】:

  • 感谢您的回答。我相信应用您的正则表达式与应用回车不同,即在行首写下一个字符。例如,'abc\rx\r\n' 应该产生 'xbc\r\n',而你的正则表达式会产生 'x\r\n'。
  • @MAcabot 你不是说它应该导致abx\r\n吗?那么.\r(?!\n)应该这样做吗?
  • @MAcabot 你是对的。在这种情况下,恐怕您不能使用正则表达式,您必须以编程方式解决这个问题...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-22
  • 1970-01-01
  • 2011-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多