入力テキストファイルの内容は、次のとおりです。正規表現を使用してテキストファイルの内容を検証する
TIMINCY ........多くの任意の文字が含まれています。空白とタブ
詳細........多くの任意の文字を含む。空白とタブ
詳細........多くの任意の文字を含む。空白とタブ
詳細........多くの任意の文字を含む。空白およびタブ
。
。
。 (DETAILSを含む任意の数の行)
TIMINCY ........多くの任意の文字を含む。空白とタブ
詳細........多くの任意の文字を含む。空白とタブ
詳細........多くの任意の文字を含む。空白とタブ
詳細........多くの任意の文字を含む。空白およびタブ
。
。
(その上で)
Q:私は、ファイルの内容は、上記のパターンに対してに従い されていない場合、私はCustomExceptionを投げることができるように正規表現を使用してファイルを検証する必要があります。
お手伝いができるかどうかお知らせください。どんな助けでも心から感謝しています。
String patternString = "TMINCY"+"[.]\\{*\\}"+";"+"["+"DETAILS"+"[.]\\{*\\}"+";"+"]"+"\\{*\\}"+"]"+"\\{*\\};";
Pattern pattern = Pattern.compile(patternString);
String messageString = null;
StringBuilder builder = new StringBuilder();
try (BufferedReader reader = Files.newBufferedReader(curracFile.toPath(), charset)) {
String line;
while ((line = reader.readLine()) != null) {
builder.append(line);
builder.append(NEWLINE_CHAR_SEQUENCE);
}
messageString = builder.toString();
} catch (IOException ex) {
LOGGER.error(FILE_CREATION_ERROR, ex.getCause());
throw new BusinessConversionException(FILE_CREATION_ERROR, ex);
}
System.out.println("messageString is::"+messageString);
return pattern.matcher(messageString).matches();
ただし、正しいファイルの場合はFALSEを返します。正規表現で私を助けてください。
* CORRECTION ::私が使用しているパターンがある:文字列patternString = "[" + "TMINCY" + "[] \\ {*} \\。" + ";" + "[ "+"詳細 "+" [。] \\ {* \\} "+"; "+"] "+" \\ {* \\} "+"] "+" \\ {* \\}; ";また、次の言及に欠場:プライベート静的最終的な文字列NEWLINE_CHAR_SEQUENCE = ";"; – saiD
コメントを書く代わりに投稿を編集してください。本当にREGEXを使用する必要がありますか?ループで行単位で読むだけではどうですか? – jeanr
必須:https://xkcd.com/1171/ – jdv