将纯文本转换为 Microsoft Word 项目符号列表时出现问题

将纯文本转换为 Microsoft Word 项目符号列表时出现问题

我是一名程序员。我讨厌状态报告。我找到了一种与之共存的方法。当我在 IDE (Visual Slickedit) 中工作时,我会在其中一个文件/缓冲区选项卡中打开一个纯文本文件。当我完成工作时,我会快速记下该文件。周末,这将成为我的每周状态报告。示例条目:

  The Datatables.net plugin runs very slowly in IE 8 with more than 2,000 records. I   
  changed the way I did the server side code to process the data to make less work for the 
  plugin to get decent performance for the IE 8 users.

  I made a class to wrap data from the new data collection objects into the legacy data 
  holder objects.  This will let the new database code be backward compatible with the  
  legacy code until we can replace it.

  I found the bug reported by Jane.  The software is fine.  The database we use for the
  test site has data that is corrupted in a way it wouldn't be for production site

月末时,我会返回到每个每周的 *.txt 文件,并将所有条目粘贴到 MS Word 文件中,以生成月度报告。我将月度报告交给承包公司的联络员,他必须将每个人的月度报告汇编成一份 MS Word 2007 文档。他的问题(很快也会成为我的问题)出现在他突出显示我的段落(如上文所述)以在段落前面添加项目符号时。

当他使用 MS Word 2007 突出显示我的笔记并在其前面添加项目符号时,Word 会对文本进行一些重新排列,并且新行符/回车符会使文本交错,因此文本不再是整齐的块。

这:

I found the bug reported by Jane.  The software is fine.  The database we use for the
test site has data that is corrupted in a way it wouldn't be for production site

变成这样:

I found the bug reported by Jane.  The software is fine.  The database we use for 
the
test site has data that is corrupted in a way it wouldn't be for production site

我尝试在 IDE 中为放入状态注释的文本文件启用自动换行功能。但无论如何,它只会放入某种换行符。在文本文件中搜索/替换这些字符会导致段落被破坏。

一旦将我的笔记粘贴到 MS Word 中,Word 就会自动将其转换为段落分隔符。在那里搜索/替换它们也会得到类似的结果。分隔笔记的空白行消失了。一片混乱。

我希望能够像现在一样继续将我的状态注释添加到文本文件中,但是当我将注释粘贴到 MS Word 中时做一些不同的事情,以便我的联络人可以选择文本,点击项目符号命令,并且不会出现如上所示的交错文本。

有任何想法吗?

提前致谢

史蒂夫

答案1

您使用单行换行和双行换行来换行。Word 将一个或多个换行识别为新段落,这些段落将成为新的项目符号。您需要在粘贴到 Word 之前引入额外的操作步骤,其中单个换行将被删除。

如果您可以使用正则表达式,那么只需用\r\n(?!\r\n)空替换即可。如果新行(变体CR+LF)后面没有另一个新行,则这将删除新行,因此会删除单个换行符。1

它有减少一行新行的副作用。2可以使用许多高级文本编辑器来执行此操作;几乎任何支持 Perl 兼容正则表达式 (PCRE) 的编辑器。

例如,在 Notepad++ 中:

之前的截图
点击查看完整尺寸

之后的截图
点击查看完整尺寸


为了进一步整理,您可以用一个空格替换多个空格,即[ ]+用(一个空格)替换(一个或多个空格)。


1\r表示回车符 ( CR),\n表示换行符 ( LF)。Windows 使用CR+LF表示换行符,Linux 仅使用LF(?!something)表示 PCRE 中的负向前瞻;即,它只匹配未something出现的字符。此外,前瞻不是包括在比赛中,因此没有被替换,它只是已检查

2(?<!\r\n)\r\n(?!\r\n)如果有多行,则不会匹配/减少。它使用负向后视(?<!something)

相关内容