如何重新格式化推文,一致地用转义的引号替换单引号

时间:2017-04-09 12:13:08

标签: java twitter twitter4j input-filtering

目前,我有一个方法,将在下面显示,旨在删除使用twitter API检索的推文的所有单引号和换行符。换行每次都有效,但出于某种原因,尽管如此,替换字符的工作时间只有一半。这种替换方法在写文件之前恰好被称为一行,所以我怀疑它是否因为某些原因而错过了迭代。这些推文似乎是随机过滤的。我无法解释为什么有时会起作用。奇怪的是。使用x.replace(“\”,“\\'”)删除if语句;导致没有被过滤。

提前致谢。

public static String replace(String x) {
    String replaced = x;


        if (x.contains("'")) {
            replaced = x.replaceAll("'", "\\\\'");
        }
        if(x.contains("\n") || x.contains("\r")){
            replaced = x.replaceAll("\\r\\n|\\r|\\n", " ");
        }

        System.out.println(replaced);

    return replaced;
}

编辑:调查一下,if语句激活,但只有一小部分时间,一些推文很简单,转到replaceAll行并且不会被替换。为什么不?我没有线索。

示例数据:https://justpaste.it/15c6t 首先搞砸的是“你是”第20行。

1 个答案:

答案 0 :(得分:0)

似乎有些情况下第一种替换方法受到第二种替换方法的干扰。当将两者分成两种不同的方法时(虽然很笨拙),它应该具有应有的功能。

import pymysql

db = pymysql.connect(host="localhost", user="root", passwd="1234", db="sakila")

cur = db.cursor()

in_lst=['1', '2']

for i in in_lst:
    Sql = "SELECT * FROM actor Where actor_id='{inpt}'".format(inpt=i)
    print(Sql)
    cur.execute(Sql)
    records = cur.fetchall()
    print(records)

db.close()