我有以下字符串:
val str = "tagged.big AND tagged.medium"
我需要实现正则表达式,该表达式将找到tagged.
的所有保证,直到第一个空格或该行的末尾。我希望在当前的str
中提取2个字符串:
tagged.big
tagged.medium
这是我目前的尝试
val pattern = "tagged.*\\s".r
但它返回:
Some(tagged.big AND )
在这种情况下,您能显示正确的正则表达式吗?
答案 0 :(得分:1)
模式tagged\.\S+
应该在这里起作用。这将匹配tagged.
,后跟一个或多个空格字符。这是一个演示:
这就是我编写模式的方式。您当前模式的问题是.*
贪婪,在碰到空白字符之前将继续消耗尽可能多的东西。同样,在最终匹配tagged.medium
的情况下,在其后没有空格字符。因此,我们可以尝试使用此代码:
tagged.*?(?=\s|$)