正在努力使用Salesforce APEX中的代码来识别代码中的所有注释块。
在更大的展望中,我想检查代码行以检查是否存在任何最佳实践错误。
为此,我需要行计算是正确的,因此希望将注释块组合成单行。
但是,我尝试的所有模式都会进入无限循环。
我正在寻找正则表达式,它将为以下类型的代码返回3个匹配项: -
/* hey
*ru
*there
*/
Some COde
/* hey
*ru
*there
*/
Some Code
/* hey
*ru
*there
*/
Some Code
我已经尝试过的选项如下: -
\\*([^*]|[\r\n]|(\\*+([^*/]|[\r\n])))*\\*+
(/\\*([^*]|[\r\n]|(\\*+([^*/]|[\r\n])))*\\*+/)
/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/
但这一切都无效。
有人可以用更好的字符串帮助我吗?
答案 0 :(得分:0)
如果您只想计算注释块,可以在完整代码上使用以下正则表达式(不是按行):
/(/\*.*?\*/)/sg
您必须使用单行和全局修饰符才能返回所有注释。
答案 1 :(得分:0)
查看Apex文档,看起来您正在寻找兼容Java的正则表达式。
你可以依靠
"/\\*[^*]*\\*+([^/*][^*]*\\*+)*/"
请参阅regex demo
<强>详情:
/\*
- 文字/*
susbtring [^*]*\*+
- 匹配除*
以外的0 +字符,然后匹配一个或多个文字星号(?:[^/*][^*]*\*+)*
- 零个或多个序列:
[^/*][^*]*\*+
- 除/
或*
以外的任何字符(请参阅[^/*]
),后跟零星号([^*]*
以外的零个或多个字符)一个或多个星号(\*+
)/
- 关闭/
符号。