How can I remove or replace all punctuation characters from a String?

后端 未结 6 1997
情歌与酒
情歌与酒 2021-02-05 14:46

I have a string composed of words, some of which contain punctuation, which I would like to remove, but I have been unable to figure out how to do this.

For example if I

6条回答
  •  长情又很酷
    2021-02-05 15:22

    This works with Xcode 8.1, Swift 3:

    First define general-purpose extension for filtering by CharacterSet:

    extension String {
      func removingCharacters(inCharacterSet forbiddenCharacters:CharacterSet) -> String 
    {
        var filteredString = self
        while true {
          if let forbiddenCharRange = filteredString.rangeOfCharacter(from: forbiddenCharacters)  {
            filteredString.removeSubrange(forbiddenCharRange)
          }
          else {
            break
          }
        }
    
        return filteredString
      }
    }
    

    Then filter using punctuation:

    let s:String = "Hello, world!"
    s.removingCharacters(inCharacterSet: CharacterSet.punctuationCharacters) // => "Hello world"
    

提交回复
热议问题