最適化?
次の正規表現に問題があります。
/^\s*(/?\*{1,2}(\s*(\b.*\b)\s*(\*/)?)?|\*/?\s*)$/g
この表現を改善できるかどうか疑問に思っています。また、この表現に問題があると思われる方がいらっしゃいましたら、ご指摘いただけますでしょうか。これが私のライブデモです。以下で設定したすべての条件で機能します
テスト制約
これらの一致
/**
/*
*
*/
/** Javadoc */
/* Block */
* Multi-line
/* Single Line */
/** A
/** A */
/* A
/* A */
これらはすべきではありません
7 * 8
// Regular comment
結果
一致を次のものに置き換えた後:// $3
一部の末尾に空白があるにもかかわらず、それらを正常に変換しました。
//
//
//
// Javadoc
// Block
// Multi-line
// Single Line
// A
// A
// A
// A
正規表現の説明
/
^ Line start
\s* 0 or more white-space
( Start group 1
/? forward-slash (OPTIONAL)
\*{1,2} 1 to 2 asterisks
( Start group 2
\s* 0 or more white-space
( Start group 3
\b Start word boundry
.* 0 or more of anything
\b End word boundry
) End group 3
\s* 0 or more white-space
( Start group 4 (OPTIONAL)
\* 0 or more asterisks
/ Forward-slash
)? End group 4
)? End group 2 (OPTIONAL)
| OR
\* Asterisk
/? Forward-slash (OPTIONAL)
\s* 0 or more white-space
) End group 1
$ Line end
/
g Global; match all