请教一个正则表达式的写法,是关于提取代码注释的

2021-08-04 13:09:11 +08:00
 woomly

对于下面这段代码,请问如何获取注释 // 后面的内容?

// a. 定义一个变量
let name = "bill";

// b. 再来一个
let url = "wss://www.v2ex.com"; // c. 注意:url 需要添加 "wss://" 协议

// d. 多行文本
let content = `Javascript 支持多种注释,
其中,双斜杠 // 表示单行注释,
/* ... */ 表示多行注释`;

期望得到:

尝试了多种方法,不是匹配多了,就是匹配少了,脑阔疼!

1339 次点击
所在节点    程序员
9 条回复
czyt
2021-08-04 13:20:29 +08:00
试下
```
\/\/.*([a-z]\..*)
```
chenluo0429
2021-08-04 13:37:06 +08:00
这种不做语法分析,靠正则就能提取的吗?
hxsf
2021-08-04 13:37:39 +08:00
建议使用 js parser
debuggerx
2021-08-04 13:49:58 +08:00
(?<=^\s*//\s*)([^\s].+)$
可以匹配到:
1. 该行开头的非空字符以 // 开始
2. 提取 // 后的第一个非空字符到该行结束
netnr
2021-08-04 14:03:40 +08:00
从发布的主题来看,高亮正确,注释到位,说明这个解析插件没问题,那么可以把你要获取代码注释的整个代码块利用高亮插件解析,再查询所有注释节点
oldshensheep
2021-08-04 14:05:52 +08:00
debuggerx
2021-08-04 14:09:12 +08:00
@debuggerx 额,没注意到 C……那还是上语法解析吧
netnr
2021-08-04 14:36:08 +08:00
附上利用 highlightjs 高亮插件解析后提取注释
https://www.netnr.com/run/code/4682784552773722406
woomly
2021-08-04 14:48:29 +08:00
@hxsf
@oldshensheep
@netnr

感谢提供思路..

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/793580

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX