我有如下的groovy值:
“hostname blah blah blah”
当发生这种情况时,我想保留主机名,但删除后面的所有内容,包括第一个空格。
我对正则表达式有困难。有任何想法吗? 谢谢!
答案 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)
}