oxo*_*oxo 12 ruby regex string
说我有一个字符串: Hey what's up @dude, @how's it going?
我想删除之前的所有字符@how's
.
Vas*_*ich 18
或者与正则表达式:
str = "Hey what's up @dude, @how's it going?"
str.gsub!(/.*?(?=@how)/im, "") #=> "@how's it going?"
Run Code Online (Sandbox Code Playgroud)
你可以在这里阅读有关环顾的内容
Sim*_*tti 14
s = "Hey what's up @dude, @how's it going?"
s.slice(s.index("@how")..-1)
# => "@how's it going?"
Run Code Online (Sandbox Code Playgroud)
实际上有几种方法可以做到这一点.以下是我将使用的:
如果要保留原始字符串:
str = "Hey what's up @dude, @how's it going?"
str2 = str[/@how's.+/mi]
p str, str2
#=> "Hey what's up @dude, @how's it going?"
#=> "@how's it going?"
Run Code Online (Sandbox Code Playgroud)
如果要改变原始字符串:
str = "Hey what's up @dude, @how's it going?"
str[/\A.+?(?=@how's)/mi] = ''
p str
#=> "@how's it going?"
Run Code Online (Sandbox Code Playgroud)
...要么...
str = "Hey what's up @dude, @how's it going?"
str.sub! /\A.+?(?=@how's)/mi, ''
p str
#=> "@how's it going?"
Run Code Online (Sandbox Code Playgroud)
您需要在\A
字符串的开头锚定,并使用该m
标志以确保您在多行之间进行匹配.
也许最简单的是改变原作:
str = "Hey what's up @dude, @how's it going?"
str.replace str[/@how's.+/mi]
p str
#=> "@how's it going?"
Run Code Online (Sandbox Code Playgroud)