在Ruby中使用任何方法从字符串中提取子字符串的快速方法

o2gm4chl  于 2022-11-04  发布在  Ruby
关注(0)|答案(3)|浏览(232)

作为Ruby的初学者,我如何在Ruby中从字符串中提取子字符串?
示例:

string1 = "1.1.67.01-f9@92a47088f49d095f0"

我想从开头到'-'提取子字符串。所以子字符串是'1.1.67.01'

91zkwejq

91zkwejq1#

下面的代码使用第一个-的索引对字符串进行切片(0是字符串的开始):

substring = string1[0, string1.index("-")]
afdcj2ne

afdcj2ne2#

如果你能保证第一个-出现在你想要的子字符串后面,那么Ruby’s string split方法是一个很好的选择。

string1.split('-')[0]
bnl4lu3b

bnl4lu3b3#

听起来像是一个快速和肮脏的正则表达式的工作。

string1 = "1.1.67.01-f9@92a47088f49d095f0"
/^([^-]*)-/ =~ string1
puts $1

让我们分解一下正则表达式

/^([^-]*)-/

/是正则表达式的引号,有点像字符串的引号"。(在本例中,它终止了匹配)。然后,我们有一个捕获组(...),它表示这是我们真正“感兴趣”的匹配部分。在内部,我们匹配不是短划线([^-])、重复零次或多次(*)的任何字符。
在成功匹配之后,我们将打印第一个(在本例中是唯一的)捕获组$1

相关问题