我需要从String中删除注释。使用引号指定注释。例如:
removeComments("1+4 'sum'").equals("1+4 ");
removeComments("this 'is not a comment").equals("this 'is not a comment");
removeComments("1+4 'sum' 'unclosed comment").equals("1+4 'unclosed comment");
我可以遍历字符串的字符,跟踪引号的索引,但我想知道是否有更简单的解决方案(可能是正则表达式?)
答案 0 :(得分:7)
您可以使用replaceAll:
str = str.replaceAll("\\'.*?\\'", "");
这将用'
替换它们之间的第一个和第二个""
以及所有(因此,将删除它们)。
编辑:正如评论中所述,没有必要反驳单引号。
答案 1 :(得分:2)