1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10 * 11 * 12 * 13 * 14 * 15 * 16 * 17 * / 18 19 パッケージのjava.util.regex。 20 21 / ** 22 *未確認の例外はで構文エラーを示すためにスロー 23 *正規表現パターン。 24 * 25 * @author unascribed 26 * @since 1.4 27 * @spec JSR-51 28 * / 29 30 パブリック クラスPatternSyntaxExceptionの 31が 延びてはIllegalArgumentException 32 { 33 プライベート 静的 最終 長いのserialVersionUID = -3864639126226059218L 。 34 35 民間 最終文字列DESC。 36 民間 最終文字列のパターン。 37 民間 最終 int型のインデックス。 38 39 / ** 40 *は、このクラスの新しいインスタンスを構築します。 41 * 42 * @paramの DESC 43 *エラーの説明 44 * 45 * @param 正規表現 46 *誤パターン 47 * 48 * @paramの インデックス 49 *エラーのパターンに近似インデックス、 50 *または{ @コード-1}インデックスが知られていない場合 51 * / 52 公共 PatternSyntaxExceptionの(文字列DESC、文字列の正規表現、int型のインデックス){ 53 この .desc = DESC。 54 この .pattern = 正規表現。 55 この .INDEX = 指数; 56 } 57 58 / ** 59 *は、エラーインデックスを取得します。 60 * 61 * @return エラーのパターンに近似インデックス、 62 *または{ @code -1}インデックスが知られていない場合は 63 * / 64 公共 int型getIndex(){ 65 リターンインデックスを、 66 } 67 68 / ** 69 *は、エラーの説明を取得します。 70 * 71 * @return エラーの説明 72 * / 73 公共の文字列のgetDescription(){ 74 リターンDESC。 75 } 76 77 / ** 78 *は、エラーが発生した正規表現パターンを取得します。 79 * 80 * @return 誤ったパターン 81 * / 82 公共ストリングgetPattern(){ 83 リターンパターン。 84 } 85 86 / ** 87 *構文の説明を含む複数行の文字列を返し 88 *エラーとそのインデックス、誤った正規表現パターン、及び 89 パターン内のエラーインデックスの*視覚的に表示します。 90 * 91 * @return 完全な詳細メッセージ 92 * / 93 公共の文字列のgetMessage(){ 94 のStringBuilder SB = 新しいですStringBuilder(); 95 sb.append(DESC)。 96 であれば(インデックス> = 0 ){ 97 sb.append( "インデックス周辺" )。 98 sb.append(インデックス) 99 } 100 sb.append(System.lineSeparator())。 101 sb.append(パターン)。 102 であれば(インデックス> = 0 &&パターン!= NULL &&インデックス< pattern.length()){ 103 sb.append(System.lineSeparator())。 104 のためには、(int型、iはインデックスを<; I = 0 iは++)sb.appendを(」 ' )。 105 sb.append( '^' ); 106 } 107 リターンsb.toString()。 108 } 109 110 }