I am new to ruby and my regex knowledge leaves a lot to be desired. I am trying to check if a string is a palindrome, but wish to ignore white space and commas.
The current code I have is
def palindrome(string)
string = string.downcase
string = string.gsub(/\d+(,)\d+//\s/ ,"")
if string.reverse == string
return true
else
return false
end
end
Any assistance here would be greatly appreciated.
Ruby has lstrip and rstrip methods which can be used to remove leading and trailing whitespaces respectively from a string. Ruby also has strip method which is a combination of lstrip and rstrip and can be used to remove both, leading and trailing whitespaces, from a string.
The . strip method removes the leading and trailing whitespace on strings, including tabs, newlines, and carriage returns ( \t , \n , \r ).
To remove all commas from a string, call the replace() method, passing it a regular expression to match all commas as the first parameter and an empty string as the second parameter. The replace method will return a new string with all of the commas removed.
delete or . tr String method to delete the newlines.
but wish to ignore white space and commas
You don't need to put \d
in your regex. Just replace the spaces or commas with empty string.
string = string.gsub(/[\s,]/ ,"")
The above gsub command would remove all the spaces or commas. [\s,]
character class which matches a space or comma.
Another way would be to use the method String#tr:
str = "pat, \t \ntap"
str.tr(" ,\t\n", '') #=> "pattap"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With