我正在尝试一种模式来获取此文本中的最后一行星。
我带来的模式非常简单。它匹配第一行和最后一行
(* {5,})
但是,我只需要最后一行。 这是文字:
这里有一些文字
************************************
* *
* *
* Source: Test *
* *
* Amount: $6.50 *
* *
************************************
答案 0 :(得分:0)
您可以使用\z
定义字符串的结尾。
所以在Ruby格式中,这可以解决问题:
"\\*{5,}\\z"
干杯!
这对我有用,我在这里测试过:http://www.regexplanet.com/simple/index.html
好的,它确实有效:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Untitled {
public static void main(String[] args) {
String test = " ************************************\n" +
"* *\n" +
"* *\n" +
"* Source: Test *\n" +
"* *\n" +
"* Amount: $6.50 *\n" +
"* *\n" +
"************************************";
Pattern pattern = Pattern.compile("\\*{5,}\\z");
// In case you would like to ignore case sensitivity you could use this
// statement
// Pattern pattern = Pattern.compile("\\s+", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(test);
// Check all occurance
while (matcher.find()) {
System.out.print("Start index: " + matcher.start());
System.out.print(" End index: " + matcher.end() + " ");
System.out.println(matcher.group());
}
}
}
输出:开始索引:260结束索引:296 * ** * ** * ** * ** * ** * **** 强>
答案 1 :(得分:0)
使用与字符串结尾匹配的模式'\*{5,}$'
。但是你需要双击反斜杠,所以\\*{5,}$
。
Pattern.compile("\\*{5,}$")