当前位置: 首页 > 知识库问答 >
问题:

如何替换RTF文件中的标签?

梅欣然
2023-03-14

我需要在RTF文件的内容中将“\line”标记替换为“\par”标记,然后解析结果文本。

        var tmp = String(fileContent!!.data, StandardCharsets.UTF_8)
        tmp = tmp.replace("\\line","\\par") // here is "{\rtf1\ansi\ansicpg1251\deff0\deflang1049\defl... "
        val inputStram = ByteArrayInputStream(tmp.toByteArray(StandardCharsets.UTF_8))
        val blocks = fixBlocks(rtfRegulationTextReader.readTextBlocks(inputStram))
....
    @Throws(IOException::class, BadLocationException::class)
    fun readTextBlocks(is: InputStream?): List<TextBlock> {
        val rtfParser = RTFEditorKit()
        val document = rtfParser.createDefaultDocument()
        rtfParser.read(is, document, 0)
        var text = document.getText(0, document.length)
        text = rtfDecoderText.decodeText(null, text) // here is "пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅ ..." 

当我通过fileContent时,一切都很顺利!!。数据直接传输到readTextBlocks.(我的转换似乎破坏了文本编码。请帮助我?

共有1个答案

袁增
2023-03-14

尝试使用regex:

Java:

Pattern p = Pattern.compile("\\\\line");
Matcher m = p.matcher(fileContent);
String output = m.replaceAll("\\\\par");

科特林:

val p = Pattern.compile("\\\\line")
val m = p.matcher(fileContent)
val output = m.replaceAll("\\\\par")
 类似资料:
  • 下面是我已经尝试过的代码: 有什么技巧或解决办法我可以实现它?

  • 问题内容: 我的一个同事写了一堂课。他的班级使用我的班级。他没有告诉JVM每次编译类时我的类都在哪里,而是将这两个类打包到一个jar文件中,我可以像这样运行: 现在,我决定对班级进行更改。因此,由于我的班级已经预编译到他的jar中,所以他的班级(我仍然需要使用)使用我的旧班级。我的同事离开了,我不知道他如何将所有内容打包到一个jar文件中供我使用。 现在,当我尝试使用时,当他的班级调用我的班级时,

  • 我只想将一个文件从一个文件夹移动到另一个文件夹(已经知道如何操作),并在这个过程中检查目标文件夹中的所有文件,删除同名文件。 我有两个文件夹/src和/dst。 在/src文件夹中,我有: access.log.1.txt 在文件夹/dst中: “进入。日志1.20171110_115840565311.txt' 当我将/src中的文件移动到/dst时,我想删除/src中名为文件的所有文件,不包括

  • 我只想知道如何用另一个文件完全替换用户的主机文件?注意:我只想给用户我的. exe编译文件(附加我自己的主机文件),并且在运行exe文件后,用户的主机文件应替换为我自己的主机文件,我附加到我的exe文件。

  • 问题内容: 如何使用Python 3搜索和替换文件中的文本? 这是我的代码: 输入文件: 当我在上面的输入文件中搜索并将“ ram”替换为“ abcd”时,它起了一种魅力。但是,反之亦然,即用“ ram”替换“ abcd”时,一些垃圾字符会保留在末尾。 用“ ram”代替“ abcd” 问题答案: fileinput已经支持就地编辑。stdout在这种情况下,它将重定向到文件:

  • 问题内容: 我试图通过读取每一行,对其进行测试,然后编写是否需要更新来替换文本文件中的文本。我不想另存为新文件,因为我的脚本已经先备份了文件并可以进行备份。 到目前为止,这是我所拥有的…我从os.walk()获得了fpath,并保证pathmatch var正确返回: 但是最终发生的是,我只得到了几行(正确更新,请注意,但是从文件的开头重复了)。我认为这是一个范围界定的问题。 *另外:我想知道如何