删除单行注释(排除网址)
在我常用的编程语言中单行注释以//开始。
删除单行注释就是删除//开始到行的结尾的内容。
不过有点坑的是如果有网址比如http://www.cn这种,一不小心后面也被当成注释删掉了。
我之前在自己的网站编一些模块,有时候自己懒得想,直接让ai帮咱想,有ai就是方便,不过Ai好多时候很智障,特别是那个R1。
我给他发一段代码,一个很简单的要求,你帮我修改实现我需要的把结果发过来就好了,给我发了好长好长的推理。又给我考虑这考虑那,比如变量没有定义,输出错误报告,不够安全什么的,我根本就不需要,我给它发的只是一部分代码,当然会有变量不存在,还有什么错误什么的,你就把我的要求实现就行了,5段代码的事他能给发20段过来。再加上啰嗦的内容,一句话可以搞定,他能说一百句。
今天我让ai帮我改一个正规则,就是那个删除单行注释的,需要排除前面有http:这种,结果一直让它改,改了我测试不行,改了我测试不行,不知道我描述的不全面还是什么,反正一个小问题两三个小时过去了,我迷茫了。
然后还是自己看菜鸟教程吧,自己修改。
大概边看边修改,有20分钟左右,我要的功能实现了。
代码如下:
const z4=/(?<!https?:)\/\/.*$/gm;#匹配单行注释,但是排除网址 str=str.replace(z4,'');
? < !代表排除这种
https?:这个?代表s可以有也可以没有,匹配http:和https:,组合起来就是排除这种
\/\/是匹配的两个/,因为要用\转义,不然会提前结束判断
.*$是匹配所有内容到行的结尾
gm是多行匹配,匹配所有行。
事后在看是一个很简单的东西,但是当时就是怎么都搞不好,Ai给发的也不对。可能我描述不够仔细,也可能它理解的不行。