Checkstyleチェック項目:Regexp
チェック実行例をより詳しく知りたい場合は公式を参照のこと。
ver 10.3.1
Regexp
指定されたパターンがファイル内に存在するか、存在する回数が設定値以下か、存在しないかをチェックする。
プロパティ
プロパティ | 型 | デフォルト値 | 説明 |
---|---|---|---|
format | Pattern | "^$" |
チェックする正規表現 |
message | String | null | 違反の通知に使用するメッセージ |
illegalPattern | boolean | false | true:指定のパターンが存在することをチェック false:指定のパターンが存在しないことをチェック |
duplicateLimit | int | 0 | 負の値:重複をチェックしない 正の値:許容される重複の最大数 |
errorLimit | int | 100 | チェックが中断されるまでの最大違反回数 |
ignoreComments | boolean | false | コメントをチェック対象外とするかどうか |
チェック設定例
プロパティ設定なし
<module name="Regexp"/>
プロパティ設定あり
<module name="Regexp"> <property name="format" value="// This code is copyrighted\n// \(c\) MyCompany"/> </module>
チェック実行例
プロパティ設定なし
プロパティ未指定の場合はチェックは実施されない
プロパティ設定あり
// 以下の2行が存在しない場合NG // This code is copyrighted // (c) MyCompany
RegexpMultiline
指定されたパターンが、任意のファイルタイプで複数行に渡ってマッチするかどうかをチェックする。
プロパティ
プロパティ | 型 | デフォルト値 | 説明 |
---|---|---|---|
format | Pattern | "$." |
チェックする正規表現 |
message | String | null | 違反の通知に使用するメッセージ |
ignoreCase | boolean | false | 検索時に大文字小文字を無視するかどうか |
minimum | int | 0 | 各ファイルで必要な最小パターン一致数 |
maximum | int | 0 | 各ファイルで必要な最大パターン一致数 |
matchAcrossLines | boolean | false | 複数行にまたがる式をマッチングさせるかどうか |
fileExtensions | String[] |
all files | チェック対象のファイル拡張子 |
チェック設定例
プロパティ設定なし
<module name="RegexpMultiline"/>
プロパティ設定あり
<module name="RegexpMultiline"> <property name="matchAcrossLines" value="true"/> <property name="format" value="System\.out.*?print\("/> </module>
チェック実行例
プロパティ設定なし
プロパティ未指定の場合はチェックは実施されない
プロパティ設定あり
void foo() { // NG System.out.print("Example"); // OK System.err.println("Example"); // NG System.out.print ("Example"); // OK System.err.println ("Example"); }
RegexpOnFilename
ファイルやフォルダーのパスに基づいて、指定されたパターンが一致するかどうかをチェックする。
また、他のチェックで確認できない特定の命名パターン(例:プロパティ、xml など)にファイル名が一致するかどうかの確認にも使用可能。
デフォルトではスペースを含むファイル名がNGとなり検出される。
プロパティ
プロパティ | 型 | デフォルト値 | 説明 |
---|---|---|---|
folderPattern | Pattern | null | フォルダパスと照合する正規表現 |
fileNamePattern | Pattern | null | ファイル名と照合する正規表現 |
match | boolean | true | true:一致するとNG false:不一致だとNG |
ignoreFileNameExtensions | boolean | false | ファイル名のマッチングにおいて、ファイル拡張子を無視するかどうか |
fileExtensions | String[] |
all files | チェック対象のファイル拡張子 |
チェック設定例
プロパティ設定なし
<module name="RegexpOnFilename"/>
プロパティ設定あり
<module name="RegexpOnFilename"> <property name="fileNamePattern" value="\.gif$"/> </module>
チェック実行例
プロパティ設定なし
// OK src/xdocs/config_regexp.xml // NG src/xdocs/"config regexp".xml
プロパティ設定あり
// OK src/site/resources/images/favicon.png // OK src/site/resources/images/logo.jpg // NG src/site/resources/images/groups.gif
RegexpSingleline
指定されたパターンが、任意のファイルタイプの1行にマッチするかどうかをチェックする。
プロパティ
プロパティ | 型 | デフォルト値 | 説明 |
---|---|---|---|
format | Pattern | "$." |
チェックする正規表現 |
message | String | null | 違反の通知に使用するメッセージ |
ignoreCase | boolean | false | 検索時に大文字小文字を無視するかどうか |
minimum | int | 0 | 各ファイルで必要な最小パターン一致数 |
maximum | int | 0 | 各ファイルで必要な最大パターン一致数 |
fileExtensions | String[] |
all files | チェック対象のファイル拡張子 |
チェック設定例
プロパティ設定なし
<module name="RegexpSingleline" />
プロパティ設定あり
<module name="RegexpSingleline"> <property name="format" value="System.exit\("/> <property name="maximum" value="1"/> </module>
チェック実行例
プロパティ設定なし
プロパティ未指定の場合はチェックは実施されない
プロパティ設定あり
class MyClass { void foo() { try { doSomething(); System.exit(0); } catch (Exception e) { // NG `System.exit`は1回まで System.exit(1); } } }
RegexpSinglelineJava
指定されたパターンがJavaファイル内の1行にマッチするかどうかをチェックする。
プロパティ
プロパティ | 型 | デフォルト値 | 説明 |
---|---|---|---|
format | Pattern | "$." |
チェックする正規表現 |
message | String | null | 違反の通知に使用するメッセージ |
ignoreCase | boolean | false | 検索時に大文字小文字を無視するかどうか |
minimum | int | 0 | 各ファイルで必要な最小パターン一致数 |
maximum | int | 0 | 各ファイルで必要な最大パターン一致数 |
ignoreComments | boolean | false | コメントをチェック対象外とするかどうか |
チェック設定例
プロパティ設定なし
<module name="RegexpSinglelineJava"/>
プロパティ設定あり
<module name="RegexpSinglelineJava"> <property name="format" value="System\.out\.println"/> <property name="ignoreComments" value="true"/> </module>
チェック実行例
プロパティ設定なし
プロパティ未指定の場合はチェックは実施されない
プロパティ設定あり
// NG System.out.println(""); // OK System.out. println(""); // OK コメントは無視される /* System.out.println */