So I have a really long string that's a list of TV station call letters. The CRM which I'm putting this into has a character limit of 250 per field. I've created a few fields as a result. I'd like to split a string to 250 characters, then I'd like to find the last occurrence of ", "
str = "WPXN, KPXN, WCPX, WPPX, KPXD, KKPX, WBPX, WPXA, WWPX, WPXW, KPXB, WPXD, KPPX, WXPX, KPXM, WPXM, WVPX, KPXC, WOPX, KSPX, KPXG, KPXG-LD, WINP, WIPX, WRPX, WFPX, WNPX, WHPX, KPXE, KUPX, WPXE, KPXL, WPXP, WZPX, WPXH, WPXV, KOPX, WGPX, WPXC, WPXJ-LP, WPXX, WPXJ, WPXQ, WPXL, WQPX, WYPX, WPXK, KTPX, WUPX, WLPX, WPXR, KFPX, KPXO, WSPX, KPXR, WEPX, WTPX"
str[0...250]
# returns "WPXN, KPXN, WCPX, WPPX, KPXD, KKPX, WBPX, WPXA, WWPX, WPXW, KPXB, WPXD, KPPX, WXPX, KPXM, WPXM, WVPX, KPXC, WOPX, KSPX, KPXG, KPXG-LD, WINP, WIPX, WRPX, WFPX, WNPX, WHPX, KPXE, KUPX, WPXE, KPXL, WPXP, WZPX, WPXH, WPXV, KOPX, WGPX, WPXC, WPXJ-LP, WPXX"
# leftover_string = do something here
# returns ", WPXX"
appropriate_length_string = str[0...250].chomp(leftover_string)
longer_string = str[251..-1]
longer_string.insert(leftover_string + ", ",0)
# recusrively run until all strings are in an array or something.
Make sense? I don't know how to do the "do something here" part.
Using regular expression (String#[regexp]):
str[0,250][/,[^,]*$/]
# => ", WPXX"
using String#rindex:
s = str[0,250]
s[s.rindex(',')..-1]
# => ", WPXX"
Alternative that use String#rpartition suggested by Cary Swoveland:
str[0,250].rpartition(',')[1..2].join
# => ", WPXX"
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