正则表达服务器名称的元素,格式为“ubuntu-prod-sfo1-01”

时间:2015-12-05 00:38:22

标签: ruby regex

尝试以“ubuntu-prod-sfo1-01”格式提取服务器名称的各个元素,这将给我[[ubuntu“,”prod“,”sfo1“,”01“]的结果。因此,“ - ”与结束元素和结束元素之间的所有内容在结束时以“ - ”开头,尊重。

“ubuntu-prod-sfo1-01”==> [“ubuntu”,“prod”,“sfo1”,“01”]

我对它的尝试失败了,因为我能找到的最好的解决方案会给我第一个“刺激”,但是无法获得每个剩余的元素。问题似乎是在元素之间重复使用' - '。

2 个答案:

答案 0 :(得分:1)

您可以在分隔符中将字符串拆分为子字符串,例如-

string = "ubuntu-prod-sfo1-01"
string.split('-')
=> ["ubuntu", "prod", "sf01", "01"]

来自官方文档

  

将str分为基于分隔符的子串,返回这些子串的数组。

     

如果pattern是String,则在拆分str时将其内容用作分隔符。如果pattern是单个空格,则str在空格上分割,前导空格和连续空格字符的运行被忽略。

答案 1 :(得分:1)

你不需要正则表达式,你可以做......

"ubuntu-prod-sfo1-01".split('-')
=>  ["ubuntu","prod", "sfo1", "01"]