我有来自CSV文件的数据,该文件用单引号括起来,例如:
'Company name'
'Price: $43.50'
'New York, New York'
我希望能够在值的开头/结尾替换单引号,但在数据中保留引号,例如:
'Joe's Diner' should become Joe's Diner
我能做到
updateString = theString.replace("^'", "").replace("'$", "");
但我想知道我是否可以将它组合起来只做一次替换。
答案 0 :(得分:16)
您可以使用或运算符。
updateString = theString.replaceAll("(^')|('$)","");
看看它是否适合你:)
答案 1 :(得分:1)
updateString = theString.replaceFirst("^'(.*)'$", "$1");
请注意,您没有的表单将无效,因为replace
使用文字字符串,而不是正则表达式。
这可以通过使用捕获组(.*)
来实现,该替换文本中的$1
引用了该组Pattern patt = Pattern.compile("^'(.*)'$"); // could be stored in a static final field.
Matcher matcher = patt.matcher(theString);
boolean matches = matcher.matches();
updateString = matcher.group(1);
。你也可以这样做:
updateString = theString.substring(1, theString.length() - 1);
当然,如果您确定在开头和结尾都有单引号,那么最简单的解决方案是:
{{1}}