0

最後に出現した .java;[number] または java;NONE と文字列の末尾との間のテキストを取得する正規表現が必要です。

入力として持っているテキストの例を次に示します。

user: ilian
branch: HEAD
changed files:
FlatFilePortfolioImportController.java;1.78
ConvertibleBondParser.java;1.52
OptionKnockedOutException.java;1.1.2.1
RebatePayoff.java;NONE

possible dead-lock. The suggested solution is to first create a TransactionContext and then lock AccountableDataFactory.IMPORT_LOCK and PositionManagerSQL

基本的に、コミットの最後にコメントを取得する必要があります。これは、最後に変更されたファイルの後であり、1.52、1.1.2.1、または NONE などで終わる可能性があります。

4

3 に答える 3

0
String regex = "\\.java;\\d+\\.\\d+(.+)";
Pattern p = Pattern.compile(regex, Pattern.DOTALL);
Matcher m = p.matcher(input);

if (m.find()) {
    System.out.println(m.group(1));
}
于 2013-06-27T16:00:09.717 に答える
0

入力が1行であると仮定して編集 されたソリューション(明確にするために元の投稿の行のみ、以下のOPのコメントを参照)。

String input = "user: ilian branch: "
        + "HEAD changed files: "
        + "FlatFilePortfolioImportController.java;1.78 "
        + "ConvertibleBondParser.java;1.52 "
        + "possible dead-lock. The suggested solution is to first create a "
        + "TransactionContext and then lock AccountableDataFactory.IMPORT_LOCK "
        + "and PositionManagerSQL";
// checks last occurrence of java;x.xx, optional space(s), anything until end of input
Pattern pattern = Pattern.compile(".+java;[\\d\\.]+\\s+?(.+?)$");
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
    System.out.println(matcher.group(1));
}

出力:

possible dead-lock. The suggested solution is to first create a TransactionContext and then lock AccountableDataFactory.IMPORT_LOCK and PositionManagerSQL
于 2013-06-27T16:01:16.663 に答える