問題があります。文字列の先頭/末尾から新しい行/スペースを削除できないようです。私\s
は正規表現の最初と最後で使用し.trim()
、文字列を取得した後にも使用しますが、役に立ちません。
public void extractInfo(String mydata) {
// regex to extract the user name
Pattern pattern = Pattern.compile("user:\\s*(.*)\\s+branch");
Matcher matcher = pattern.matcher(mydata);
// regex to extract the branch name
Pattern pattern2 = Pattern.compile("branch:\\s*(.*)\\s+changed");
Matcher matcher2 = pattern2.matcher(mydata);
// regex to extract the comment and write it in a variable
comment = mydata.replaceAll("(?s)\\s.*java;[0-9,.]+|.*java;NONE\\s", "");
// put the author name in a variable
matcher.find();
author = matcher.group(1).toString();
// put the branch name in a variable
matcher2.find();
branch = matcher2.group(1).toString();
author.trim();
comment.trim();
branch.trim();
}
これは、情報を抽出するために使用するものです。
これは、StringBuilder を使用して抽出した情報を追加した後に得られる出力です (行は保持されます)。
git log --all -100 --before="2013-03-11" --branches=HEAD
--author="\(cholakov\)" --grep="^[#]*[0]*23922:[ ]*user:
デフォルトの債券に関するメッセージを修正
" --pretty="%H - %s ; %ad"
後の新しい行user:
は、cmdで実行しようとするとコマンド全体が失敗する原因です。これを修正する必要があります。
そして、これは私の入力です(フォーマットを維持できないようです.DataObjectParser.java;1.94は新しい行にあり、各行間でスキップされる行はありません):
ユーザー: チョラコフ
支店: 頭
変更されたファイル: DataObjectParser.java;1.94
デフォルトの債券に関するメッセージを修正