我正在尝试解析一个csv文件
这个过程遇到了一些
包含单引号的条目。我编写了以下正则表达式以匹配多个单引号匹配,如果该方法返回true,我正计划将其包装在另一组字符中
但是我没有得到正确的
输出

下面是伪代码:

public boolean containsChar()
    {

        String inputStr= "Niel O' Brian";

            Pattern pattern = Pattern.compile("/'+");
            Matcher matcher = pattern.matcher(inputStr);
            boolean matchFound = matcher.matches();

            return matchFound;
    }

最佳答案

我只会用

String inputStr= "Niel O' Brian";
return inputStr.contains("'"); // same as your expression.
return inputStr.contains("''"); // I suspect this is what you are looking for.


如果您有两个连续的单引号,则可能需要将它们替换为一个

return inputStr.replaceAll("''", "'");


如果有一个单引号,您可能希望将整个字符串放在双引号中

public static String quote(String text) {
    if (text.contains("\"")
        return '"' + text.replaceAll("\"", "\"\"") + '"';
    if (text.contains(",") || text.contains("'"))
       return '"' + text + '"';
    return text;
}


像Excel一样,在整个字段上放置双引号更加整洁。

10-07 19:16
查看更多