Groovy正则表达式找到并替换

时间:2016-10-30 18:23:07

标签: regex groovy

我有如下的groovy值:

“hostname blah blah blah”

当发生这种情况时,我想保留主机名,但删除后面的所有内容,包括第一个空格。

我对正则表达式有困难。有任何想法吗? 谢谢!

1 个答案:

答案 0 :(得分:2)

通过正则表达式提取主机名和/或字符串的一部分可以直接进行。

如果值由空格分隔,则可以只用空格字符分割字符串并使用第一部分。 Split()方法将正则表达式作为其第一个参数。

String s = "hostname blah blah blah"
String[] parts = s.split(' ', 2)
if (parts) {
  println parts[0]
  s = parts[0] // if want to replace the variale s with just the hostname
}

这是使用正则表达式提取字符串值的主机名部分的替代示例。正则表达式(\S+)的第一部分是查找一系列非空白字符。对于一组可能的主机名,更严格的表达式可能类似于(\w+(\.\w+)*)

import java.util.regex.Matcher
if (s =~ /^(\S+)\s/) {
  println Matcher.lastMatcher.group(1)
}