java - 通过Java从sql记录中删除新行

标签 java sql regex

我正在使用 JPA 读取和操作 MS SQL 表。我想通过删除换行符来清理单元格中的文本。下面是一个文本示例(将其粘贴到 notepad++ 中,每一行都会显示 **CR LF**):

(
(NVSM in (1,2)) and
(NISFVSM in (1,2)) and
(TRMBVSM = 0)
)

我尝试了以下代码,但无法摆脱换行符

flatTextString.trim()
        .replace(System.getProperty("line.separator"), " ")
        .replaceAll("\t", "")
        .replaceAll("(\\r|\\n)", "")
        .replaceAll("\\s{2,}", " ")
        ;

我该如何解决这个问题?

最佳答案

我建议仅用空格替换所有换行符和回车符,然后在关闭 ) 之前和打开 (:

String flatTextString = "(\r\n(NVSM in (1,2)) and\r\n(NISFVSM in (1,2)) and\r\n(TRMBVSM = 0)\r\n)";
System.out.println(flatTextString.replaceAll("[\r\n]+", " ").replaceAll("\\s+\\)", ")").replaceAll("\\(\\s+", "(")); // My way
// => ((NVSM in (1,2)) and (NISFVSM in (1,2)) and (TRMBVSM = 0))

参见IDEONE demo

由于 Java 正则表达式无法使用条件替换模式,因此您只能链接 replaceAll 方法,如我在上面的代码片段中所示。

关于java - 通过Java从sql记录中删除新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34739929/

相关文章:

java - 静态对象如何工作?

java - 当同级元素具有相同名称但不同属性时,如何使用 Java 和 Xerces NodeIterator 获取同级元素

sql - ORDER BY euclidean distance 并返回距离?

c++ - 通过 QT C++ 连接到 SQL Server 2005

regex - Angular Form 输入 block (空格)REGEX

regex - .htaccess 重定向 + 重写 : Prefix uri with language code while keeping initial uri

java - apache httppost如何设置内容: which have name value pair pointing to another set of name value pair

java - ehCache 基于Cookie的网页缓存Key

sql - 我应该在创建函数后提交吗?

DN 的 javascript 正则表达式