regex: replace string if it's between two spaces, leave unchanged if not
I need to remove a string A that exists in another string B only if string A is between two spaces.
string A = "e"
string B = "the fifth letter is e "
Example for replacing 'e' : "the fifth le开发者_StackOverflow中文版tter is e "
--> "the fifth letter is"
ruby-1.9.2-p290 :006 > a = "the fifth letter is e "
=> "the fifth letter is e "
ruby-1.9.2-p290 :007 > print a.gsub(/\se\s/,"")
the fifth letter is => nil
Edited the answer after you edited the question. A possible regular expression to find an "e" character between two space characters is /\se\s/
. In this case I'm replacing it with an empty string ""
. You can use gsub
which returns a copy of the string or gsub!
to modify the original string.
UPDATE: Since you edited the question again, here's un updated answer:
ruby-1.9.2-p290 :001 > a = "e"
=> "e"
ruby-1.9.2-p290 :002 > b = "the fifth letter is e "
=> "the fifth letter is e "
ruby-1.9.2-p290 :003 > print b.gsub(/\s#{a}\s/,"")
the fifth letter is => nil
You don't really need regex for this.
a = "e"
b = "the fifth letter is e "
c = b.gsub(" " << a << " ", "")
PS. In Ruby it's a constant if it begins with an uppercase letter. DS.
str = 'the fifth letter is e'
thing = 'e'
str.sub! /\s+#{thing}\s+/, ''
精彩评论