Remove “www”, “http://” from string

前端 未结 3 1840
野性不改
野性不改 2021-01-02 01:47

How can I remove \"www\", \"http://\", \"https://\" from strings using Ruby?

I tried this but it didn\'t work:

s.gsub(\'/(?:http?:\\/\\/)?(?:www\\.)?         


        
相关标签:
3条回答
  • 2021-01-02 02:24
    def strip_url(target_url)
      target_url.gsub("http://", "")
                .gsub("https://", "")
                .gsub("www.", "")
    end
    
    strip_url("http://www.google.com")
     => "google.com" 
    strip_url("https://www.google.com")
     => "google.com" 
    strip_url("http://google.com")
     => "google.com"
    strip_url("https://google.com")
     => "google.com" 
    strip_url("www.google.com")
     => "google.com" 
    
    0 讨论(0)
  • 2021-01-02 02:27

    This method should catch all 3 variations:

    def strip_url(url)
      url.sub!(/https\:\/\/www./, '') if url.include? "https://www."
    
      url.sub!(/http\:\/\/www./, '')  if url.include? "http://www."
    
      url.sub!(/www./, '')            if url.include? "www."
    
      return url
    end
    
    strip_url("http://www.google.com")
       => "google.com" 
    strip_url("https://www.facebook.com")
       => "facebook.com" 
    strip_url("www.stackoverflow.com")
      => "stackoverflow.com" 
    
    0 讨论(0)
  • 2021-01-02 02:36
    s = s.sub(/^https?\:\/\//, '').sub(/^www./,'')
    

    If you don't want to use s =, you should use sub!s instead of all subs.

    The problems with your code are:

    1. Question mark always follows AFTER an optional character
    2. Always replace one pattern in a sub. You can "chain up" multiple operations.
    3. Use sub instead of gsub and ^ in the beginning of Regexp so it only replaces the http:// in the beginning but leaves the ones in the middle.
    0 讨论(0)
提交回复
热议问题