Scala正则表达式之间的字符串提取。和空格

时间:2018-11-10 14:58:24

标签: regex scala

我有以下字符串:

val str = "tagged.big AND tagged.medium"

我需要实现正则表达式,该表达式将找到tagged.的所有保证,直到第一个空格或该行的末尾。我希望在当前的str中提取2个字符串:

tagged.big
tagged.medium

这是我目前的尝试

val pattern = "tagged.*\\s".r

但它返回:

Some(tagged.big AND )

在这种情况下,您能显示正确的正则表达式吗?

1 个答案:

答案 0 :(得分:1)

模式tagged\.\S+应该在这里起作用。这将匹配tagged.,后跟一个或多个空格字符。这是一个演示:

Demo

这就是我编写模式的方式。您当前模式的问题是.*贪婪,在碰到空白字符之前将继续消耗尽可能多的东西。同样,在最终匹配tagged.medium的情况下,在其后没有空格字符。因此,我们可以尝试使用此代码:

tagged.*?(?=\s|$)

also works