撼动正则表达式天地?!

oicqkill 2007-06-20 03:58:33
谁能给出下面正确的解呢
如下的代码,如何用正则表达式正确的去除注释:
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"
...全文
488 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
a_nuo 2007-10-25
  • 打赏
  • 举报
回复
用java实现可以用正则表达式\s+\/\/\s+\*.+\/\/\w+\"

import java.util.regex.Pattern;
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
}
}

试过了结果真确
oicqkill 2007-10-23
  • 打赏
  • 举报
回复
非常抱歉,以上回答都还没有满足需求。
javajapanengineer 2007-07-04
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/5541/5541735.xml?temp=.7890283
参考一下~~~~~~~~
嗷嗷叫的老马 2007-06-22
  • 打赏
  • 举报
回复
.........................................
CrazyGou 2007-06-22
  • 打赏
  • 举报
回复
<span id="text" style="display:none">
<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>
yingzi107 2007-06-22
  • 打赏
  • 举报
回复
程序员群 41801837
LexChen 2007-06-21
  • 打赏
  • 举报
回复
净化代码
xiaoniaoxiangfei 2007-06-21
  • 打赏
  • 举报
回复
我想问一下,弄这个有什么用吗?
xinxin821103 2007-06-21
  • 打赏
  • 举报
回复
不懂,顶一下.
believefym 2007-06-21
  • 打赏
  • 举报
回复
js不支持反向预搜索
shan1119 2007-06-21
  • 打赏
  • 举报
回复
楼上的就可以,以分号为分界点.
qiuruiok 2007-06-21
  • 打赏
  • 举报
回复
呃....我什么都不懂...
○福泽天下○ 2007-06-21
  • 打赏
  • 举报
回复
不会
  • 打赏
  • 举报
回复
感觉是很闲的问题
windstore 2007-06-20
  • 打赏
  • 举报
回复
kk.replace(/\/\/(?<=;\s*//)[^\n]+/,'');
windstore 2007-06-20
  • 打赏
  • 举报
回复
正则表达式如下:
//(?<=;\s*//)[^\n]+
swvincent 2007-06-20
  • 打赏
  • 举报
回复
kk.replace(/^\/\/\\*w+$/,'');
不知道行不!!!
LexChen 2007-06-20
  • 打赏
  • 举报
回复
关键是"的处理,呵呵
oicqkill 2007-06-20
  • 打赏
  • 举报
回复
就是把这段代码做一个串来处理,用正则表达式正确去除注释
例如:
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'
  • 打赏
  • 举报
回复
不明白!// 后面的不都是注释吗?
加载更多回复(1)

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧