我在Eclipse中使用正则表达式,并且想知道是否有基于匹配添加字符的方法。
我正在使用这些表达式来匹配和替换:
Match: ^(\s*)(//)?(.*?)"([\p{Punct}\p{Space}]*)?(\p{Alnum}.*?\p{Alnum})([\p{Punct}\p{Space}]*)?"(.*?)$
Replace: $1$3"$4" \+ i18n.tr\("$5"\) \+ "$6"$7
例如
System.err.println("Unexpected number of guests: ");
我正在尝试用
替换它System.err.println(i18n.tr("Unexpected number of guests") + ": ");
但我得到了
System.err.println("" + i18n.tr("Unexpected number of guests") + ": ");
如果没有捕获任何内容,有没有办法摆脱“+ +之前的i18n.tr(。*)?
答案 0 :(得分:1)
单个搜索替换不能做到这一点!
唯一的方法是使用两个搜索替换:
Match: ^(\s*)(//)?(.*?)"([\p{Punct}\p{Space}]++)(\p{Alnum}.*?\p{Alnum})([\p{Punct}\p{Space}]*)?"(.*?)$
Replace: $1$3"$4" \+ i18n.tr\("$5"\) \+ "$6"$7
Match: ^(\s*)(//)?(.*?)"(\p{Alnum}.*?\p{Alnum})([\p{Punct}\p{Space}]*)?"(.*?)$
Replace: $1$3i18n.tr\("$4"\) \+ "$5"$6
不要忘记在任何尝试之前进行备份