找到文本直到行结束regex

时间:2011-10-24 05:10:15

标签: java regex

我正在尝试使用正则表达式来查找特定的起始字符,然后在该特定行上获取其余文本。

例如,文字可以像......

V:中间声音 T:节奏

我想使用正则表达式来获取“V:”及其背后的文字。

使用正则表达式有没有任何好的,快捷的方法?

3 个答案:

答案 0 :(得分:4)

如果你的起始角色是固定的,你会创建一个类似的模式:

Pattern vToEndOfLine = Pattern.compile("(V:[^\\n]*)")

并使用find()而不是matches()

如果你的起始角色是动态的,你总是可以写一个方法来返回所需的模式:

Pattern getTailOfLinePatternFor(String start) {
    return Pattern.compile("(" + start + "[^\\n]*");
}

这些可以根据您的需要进行一些处理。

答案 1 :(得分:1)

对于模式匹配尝试您的示例:

N:* $

答案 2 :(得分:1)

这是最好,最干净,最简单(即一线)的方式:

 String[] parts = str.split("(?<=^\\w+): ");

说明:

正则表达式使用正面外观在第一个单词(在本例中为“V”)之后打破“:”并捕获两半。

这是一个测试:

String str = "V: mid-voice T: tempo";
String[] parts = str.split("(?<=^\\w+): ");
System.out.println("key = " + parts[0] + "\nvalue = " + parts[1]);

输出:

key = V
value = mid-voice T: tempo