2014-01-07 32 views
0

,如果我有一个字符串=“helloiamastring”从一开始就选择一个字符串的一个子红宝石

,我想从字符串的开始时选择了“LO”。我怎样才能做到这一点?

我认为这将是沿着

string[/\A/.."lo"] 

string[/\A/../lo/]

行,会给我 “你好” 的东西。唉不,我不知道去哪里找

(我还需要能够做到这一点不知道哪里是字符串中的“LO”定位)

我是新的。我确定我已经阅读过如何在某处做到这一点,但我不记得在哪里。任何帮助,将不胜感激!

感谢,

回答

5

这会工作:

"helloiamastring"[/.*lo/] 
#=> "hello" 

如果有多次出现lo而您只想匹配第一次,请改用/.*?lo/

+0

谢谢,还有一个问题。如果我想去,但不包括“lo”,该怎么办?所以独家范围。 =>“hel” –

+0

您可以使用捕获组并提供组的索引:''hello“[/(.*)lo /,1]'返回第一组,即'”hel“ – Stefan

1

这应该做的工作:

string = "helloiamastring" 
string[/\A.*[lo]/] 
=> "hello" 

或者,如果你想让它停在第一LO你可以这样做:

string[/\A.*?lo/] 
+1

你的第一个正则表达式是错误的:'string ='heliamastring' ; string [/ \ A。* [lo] /] =>“hel”',第二个有太多的捕获 – bjhaid

+0

而'/ \ A /'是多余的。 – sawa

相关问题