java赋值正则表达式

时间:2015-08-11 18:03:26

标签: java regex

请您提供正则表达式以匹配文本中的作业

$one: 3-2; $three: 4-1; 4
$one: 3-2

我已尝试\$\w+:.+?;?并期望它与$one: 3-2;$one: 3-2匹配。
但它仅匹配$one:

我错过了什么?

3 个答案:

答案 0 :(得分:1)

认为你的意思是,

\$\w+:[^;]*;?

在java。

"\\$\\w+:[^;]*;?"

你的正则表达式与第一个空格匹配,主要是因为非贪婪模式和以下可选分号。

答案 1 :(得分:1)

\$\w+:.+?(?:;|$)

你需要在multi line模式下使用它。你的工作没有工作因为;是可选的而且.+?是非贪婪的所以它会因只消耗1个字符而停止忽略;

的选项

参见演示。

https://regex101.com/r/eX9gK2/8

答案 2 :(得分:0)

您可以使用此正则表达式:

\$\w+:\s*([^;]+)

RegEx Demo

在Java中它将是:

"\\$\\w+:\\s*([^;]+)"