找不到任何可用的RegExp示例来匹配文本文件中的所有jsDoc注释块。
基本上,它需要找到满足以下规则的所有块:
/**
开头,然后是一个或多个换行符*/
我尝试了jsdoc-regex中的代码,但它不起作用:
/[^\S\r\n]*\/(?:\*{2})([\W\w]+?)\*\/([\W\w]+?)?(?=\s+\/\*{1,2}|$)/g;
注意:
我正在解析通用文本文件,不一定是JavaScript,所以我不能使用像Esprima这样的JS解析器。
更新
为了重新解释我的问题,我一直试图定义一个RegEx规则,该规则说表达式必须以*/
结束,而在它之前可以有任何东西(在块内),即通过此处的任何内容case表示除*/
以外的任何内容。
SOLUTION:
答案 0 :(得分:6)
/ /
- 空表达/
\/\*\*
/
- 匹配/**
(已转义)/
\/\*\*
\s*\n
/
- 后跟换行符(前面有空格字符)/
\/\*\*
\s*\n
\*\/
/
- 匹配*/
(已转义)/
\/\*\*
\s*\n
(
)
\*\/
/
- 添加群组< / LI>
/
\/\*\*
\s*\n
(
[^\*]
)
\*\/
/
- 该群组可能包含*
/
\/\*\*
\s*\n
(
[^\*]
|
(
)
)
\*\/
/
- 或其他群组/
\/\*\*
\s*\n
(
[^\*]
|
(
\*
)
)
\*\/
/
- 其中有*
/
\/\*\*
\s*\n
(
[^\*]
|
(
\*
{{1} } (?!\/)
)
)
\*\/
- 但后面没有/
/
/
\/\*\*
\s*\n
(
[^\*]
|
(
{{1} } \*
(?!\/)
)
)
*
- 重复整个事情
\*\/
- Tadaa!美丽,不是吗?
答案 1 :(得分:1)
除了@ m39a的答案。如果您使用的语言或Regex库不支持环顾四周。您可以使用此:
\/\*\*\s*\n([^\*]|\*[^\/])*\*\/
在Regex101上进行检查:https://regex101.com/r/TMr78R/1