编写下面的正则表达式代码将String 01,02替换为'01','02'或01,02,03替换为'01','02','03'等。
String str = "01,02";
str = str.replaceAll("([^,]+)(,|$)", "'$1'$2");
// value of str successfully changed to '01','02'
但是,它不适用于迭代元字符*而不是+,如下所示
String str = "01,02";
str = str.replaceAll("([^,]*)(,|$)", "'$1'$2");
// value of str remains 01,02
请澄清一下。对于上述模式,是否有更好的正则表达式匹配器。
答案 0 :(得分:0)
String str = "01,02";
str = str.replaceAll("([^,]*)(,|$)", "'$1'$2");
System.out.println(str);
跑完上面后我得到了
'01','02'''
因为表达式([^,]*)(,|$)
表示也不匹配任何行和结尾,这最后一个语句将产生''
字符串