谁能给出下面正确的解呢
如下的代码,如何用正则表达式正确的去除注释:
var kk = "// sljdfljsdf"; // *skldflsfllk"sdlf//sdfdsf"
var kk = "// sljdfljsdf"; // *skldflsfllk"sdlf//sdfdsf"
var kk = "// sljdfljsdf"; // *skldflsfllk"sdlf//sdfdsf"
var kk = "// sljdf/*sdf*/ljsdf'; // *sk/*fdsf*/ld""flsfllk"sdlf//sdfdsf"
var kk = '// sljdf/*sdf*/ljsdf'; // *sk/*fdsf*/ld""flsfllk"sdlf//sdfdsf"
var kk = '// sljdf/*sdf*/ljsdf'; // *sk/*fdsf*/ld""flsfllk"sdlf//sdfdsf"
如下的代码,如何用正则表达式正确的去除注释:
var kk = "// sljdfljsdf"; // *skldflsfllk"sdlf//sdfdsf"
var kk = "// sljdfljsdf"; // *skldflsfllk"sdlf//sdfdsf"
var kk = "// sljdfljsdf"; // *skldflsfllk"sdlf//sdfdsf"
var kk = "// sljdf/*sdf*/ljsdf'; // *sk/*fdsf*/ld""flsfllk"sdlf//sdfdsf"
var kk = '// sljdf/*sdf*/ljsdf'; // *sk/*fdsf*/ld""flsfllk"sdlf//sdfdsf"
var kk = '// sljdf/*sdf*/ljsdf'; // *sk/*fdsf*/ld""flsfllk"sdlf//sdfdsf"
例如:
var kk = "// sljdfljsdf"; // *skldflsfllk"sdlf//sdfdsf"
var kk = "// sljdfljsdf"; // *skldflsfllk"sdlf//sdfdsf"
var kk = "// sljdfljsdf"; // *skldflsfllk"sdlf//sdfdsf"
var kk = "// sljdf/*sdf*/ljsdf' // *sk/*fdsf*/ld""flsfllk"sdlf//sdfdsf"
var kk = '// sljdf/*sdf*/ljsdf'; // *sk/*fdsf*/ld""flsfllk"sdlf//sdfdsf"
var kk = '// sljdf/*sdf*/ljsdf' // *sk/*fdsf*/ld""flsfllk"sdlf//sdfdsf"
处理后为:
var kk = "// sljdfljsdf";
var kk = "// sljdfljsdf";
var kk = "// sljdfljsdf";
var kk = "// sljdf/*sdf*/ljsdf'
var kk = '// sljdf/*sdf*/ljsdf';
var kk = '// sljdf/*sdf*/ljsdf'
不知道行不!!!
//(?<=;\s*//)[^\n]+
<pre>
var kk = "// sljdfljsdf"; // *skldflsfllk"sdlf//sdfdsf"
var kk = "// sljdfljsdf"; // *skldflsfllk"sdlf//sdfdsf"
var kk = "// sljdfljsdf"; // *skldflsfllk"sdlf//sdfdsf"
var kk = "// sljdf/*sdf*/ljsdf' // *sk/*fdsf*/ld""flsfllk"sdlf//sdfdsf"
var kk = '// sljdf/*sdf*/ljsdf'; // *sk/*fdsf*/ld""flsfllk"sdlf//sdfdsf"
var kk = '// sljdf/*sdf*/ljsdf' // *sk/*fdsf*/ld""flsfllk"sdlf//sdfdsf"
var kk = new Object(); //test
</pre>
</span><script>
var reg = /([^'"\/\n]*(['"]?).*?[^\\]\2(?:\s*;\s*|\s+))(?:\/\/.*|\/\*.*\*\/\s*)(\n|$)/g;
var kk = document.getElementById("text").innerText;
alert("处理前:\n" + kk);
alert("处理后:\n" + kk.replace(reg, "$1$3"));
</script>
参考一下~~~~~~~~
import java.util.regex.Matcher;
import java.util.Arrays;public class TestRegex {
/**
* Creates a new instance of <code>TestRegex</code>.
*/
public TestRegex() {
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String regEx="\\s+\\/\\/\\s+\\*.+\\/\\/\\w+\"";
String oldCode="var kk = \"// sljdfljsdf\"; // *skldflsfllk\"sdlf//sdfdsf\"\r\nvar kk = \"// sljdfljsdf\"; // *skldflsfllk\"sdlf//sdfdsf\"\r\nvar kk = \"// sljdfljsdf\"; // *skldflsfllk\"sdlf//sdfdsf\"\r\nvar kk = \"// sljdf/*sdf*/ljsdf \"; // *sk/*fdsf*/ld\"\"flsfllk\"sdlf//sdfdsf\"\r\nvar kk = \"// sljdf/*sdf*/ljsdf \"; // *sk/*fdsf*/ld\"\"flsfllk\"sdlf//sdfdsf\"\r\nvar kk = \"// sljdf/*sdf*/ljsdf \"; // *sk/*fdsf*/ld\"\"flsfllk\"sdlf//sdfdsf\"";
Pattern patter=Pattern.compile(regEx);
Matcher m=patter.matcher(oldCode);
StringBuffer newCode=new StringBuffer();
while (m.find()) {
System.out.println(m.group());
m.appendReplacement(newCode,"");
}
m.appendTail(newCode);
System.out.println("oldCode:"+oldCode+"\nNewCode:");
System.out.println(newCode);
// TODO code application logic here
}
}试过了结果真确