作为Ruby的初学者,如何从Ruby中的字符串中提取子字符串?
示例:
string1 = "1.1.67.01-f9@92a47088f49d095f0"
我想提取从开头到"-"的子字符串。因此子字符串为"1.1.67.01">
如果你能保证第一个-
出现在你想要的子字符串后面,Ruby的字符串分割方法就是一个很好的选择。这看起来像:
string1.split('-')[0]
这个使用第一个-
的索引来分割字符串(0是字符串的开头(:
substring = string1[0, string1.index("-")]
听起来像是一个快速而肮脏的正则表达式的工作。
string1 = "1.1.67.01-f9@92a47088f49d095f0"
/^([^-]*)-/ =~ string1
puts $1
让我们分解正则表达式
/^([^-]*)-/
/
是正则表达式的引号,有点像"
是字符串的引号。在正则表达式中,^
标记字符串的开始,-
是一个文字短划线(在本例中,它终止了我们的匹配(。然后我们有一个捕获组(...)
,这表明这是我们真正感兴趣的匹配部分。在内部,我们匹配任何不是短划线的字符([^-]
(,重复零次或多次(*
(。
在成功匹配后,我们打印第一个(在本例中也是唯一一个(捕获组$1
。