查找文本直到行尾正则表达式

发布于 2024-12-11 23:01:50 字数 157 浏览 0 评论 0原文

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

例如,文本可以像...

V:中声 T: tempo

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

有没有什么好的、快速的方法可以使用正则表达式来做到这一点?

I'm trying to use regex to find a particular starting character and then getting the rest of the text on that particular line.

For example the text can be like ...

V: mid-voice
T: tempo

I want to use regex to grab "V:" and the the text behind it.

Is there any good, quick way to do this using regular expressions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

葬花如无物 2024-12-18 23:01:50

如果起始字符是固定的,您将创建如下模式:

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

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

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

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

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

If your starting character were fixed, you would create a pattern like:

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

and use find() rather than matches().

If your starting character is dynamic, you can always write a method to return the desired pattern:

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

These can be worked on a little bit depending on your needs.

樱花坊 2024-12-18 23:01:50

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

V:.*$

For a pattern match try for your example:

V:.*$

你怎么敢 2024-12-18 23:01:50

这是最好、最干净、最简单(即单行)的方法:

 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

Here's the best, cleanest and easiest (ie one-line) way:

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

Explanation:

The regex uses a positive look behind to break on the ": " after the first word (in this case "V") and capture both halves.

Here's a test:

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

Output:

key = V
value = mid-voice T: tempo
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文