我有一个问题 - 我似乎无法从字符串的开头/结尾删除新的行/空格。我\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 在新行上,每行之间没有跳过行):
用户: cholakov
分行负责人
更改的文件:DataObjectParser.java;1.94
修复了违约债券的消息