-2
"This is some text".scan("some")
我想能够扫描类似上面的字符串,但有方法返回文本的位置,以便它可以被称为是这样的:字符串获取扫描文本的位置
This is some text"[8..11]
=> "some"
这是否有内置功能?
"This is some text".scan("some")
我想能够扫描类似上面的字符串,但有方法返回文本的位置,以便它可以被称为是这样的:字符串获取扫描文本的位置
This is some text"[8..11]
=> "some"
这是否有内置功能?
索引方法会为你做到这一点:
"This is some text".index('some')
=> 8
如果你想要的位置,使用scan
是不是合适的方法。根据documentation,scan
将搜索整个字符串中的匹配项,并返回所有找到的内容。
相反:
/\b some \b/x =~ "This is some text"
=> 8
或:
"This is some text" =~ /\b some \b/x
=> 8
\b
是字 - 边界处,这是任何字符之间的空间不会在\w
字符类和一个是在\w
。 x
标志可以让我在图案中放入空白区域,但它不重要,并且x
不是必需的,这样可以使图案更具可读性。
target = 'some'
str = 'This is some text'
pos = str =~ /\b #{ target } \b/x
str[pos, target.size]
=> "some"
我不确定是否正确理解您的问题。你的意思是要问,如果你提供'“这是一些文本”.scan(“一些”)'你想得到[8..11]?请解释。 – vee
我的理解是你想要的子串的索引范围? – squiguy