我正在尝试解析一个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一样,在整个字段上放置双引号更加整洁。