java - 正则表达式转换将字符串转换为制表符分隔字段

标签 java regex

我想将字符串转换为制表符分隔格式。我认为选项 1 应该可以。但看起来选项 2 实际上产生了预期的结果。有人能解释一下为什么吗?

public class test {
    public static void main(String[] args) {
        String temp2 = "My name\" is something";
        System.out.println(temp2);
        System.out.println( "\"" + temp2.replaceAll("\"", "\\\"") +"\"");  //option 1
        System.out.println( "\"" + temp2.replaceAll("\"", "\\\\\"") +"\"");  //option 2
        if(temp2.contains("\"")) {
            System.out.println("Identified");
        }
    }
}

输出是:

My name" is something
"My name" is something"
"My name\" is something"
Identified

最佳答案

如果你想要Excel兼容的CSV格式,双引号的转义是两个个双引号,所以称为自转义。

String twoColumns = "\"a nice text\"\t\"with a \"\"quote\"\".";
String s = "Some \"quoted\" text.";
String s2 = "\"" + s.replace("\"", "\"\"") + "\"";

而且......计算反斜杠也不会让人头疼。

关于java - 正则表达式转换将字符串转换为制表符分隔字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25996495/

相关文章:

java - 在未修饰的 JFrame 中添加滚动条

javascript - 通过正则表达式制作 Markdown header 符号

java - 如何使原子组与java正则表达式中的交替一起工作?

java - Java 分析中的线程与加载类

java - 如何防止sitemesh解析textarea中的html

java string.getBytes ("UTF-8") 等效的 javascript

java - AndEngine Vector2 操作改变了我的变量

python - 如何使用 Python NLTK 仅打印出 Wo​​rdNet 同义词集中的单词本身?

c# - 一个或多个空格、制表符或换行符的正则表达式

javascript - 正则表达式需要包含加号