使用前缀列表从字符串中删除前缀

牛蒡

我想知道如何从给定的字符串中删除包含在前缀列表中的任何前缀(例如:[“the”、“a”、“an”](例如:“A big red Planet”->“big red Planet”) ”)。

我已经尝试过这个想法,但我不知道它是正确的还是最有效的。

extension String {
  func removing(prefixes: [String]) -> String {
    var resultString = self
    prefixes.map {
      if resultString.hasPrefix($0) {
        resultString = resultString.dropFirst($0.count).description
      }
    }
    return resultString
  }
}

想法来自这个答案:How to create a dictionary by first letter of title 但忽略像“the”或“a/an”等文章

瓦迪安

这是使用正则表达式的替代方法

好处:

  • 可以轻松处理大小写(不)敏感性。
  • 前缀后面的可选空白字符也可以省略。

正则表达式模式是^(prefix1|prefix2|prefix3)\\s?. 它匹配字符串 ( ^) 的开头,后跟(带引号的)前缀之一(作为or带有|运算符的表达式),后跟可选的空白字符 ( \\s?)。

extension String {
    func removingPrefixes(_ prefixes: [String]) -> String {
        let pattern = "^(\(prefixes.map{"\\Q"+$0+"\\E"}.joined(separator: "|")))\\s?"
        guard let range = self.range(of: pattern, options: [.regularExpression, .caseInsensitive]) else { return self }
        return String(self[range.upperBound...])
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何从字符串中删除前缀?

来自分类常见问题

从字符串中删除前缀

来自分类常见问题

如何摆脱python中字符串中的b前缀?

来自分类Dev

在TSQL中删除字符串的前缀

来自分类Dev

ng-class中的字符串前缀

来自分类Dev

如何使用小计前缀分割字符串

来自分类Dev

Bash中带前缀的字符串操作

来自分类Dev

Matlab:如何从字符串中删除前缀

来自分类Dev

字符串的前缀

来自分类Dev

如何删除匹配模式的字符串中的前缀,后缀并使用sed分割字符?

来自分类Dev

声明字符串时使用$作为前缀

来自分类Dev

正则表达式替换以删除字符串前缀中的数字

来自分类Dev

从Groovy中的字符串中删除前缀

来自分类Dev

如何使用Javascript替换不规则的字符串前缀?

来自分类Dev

删除前缀和后缀并保留中间字符串

来自分类Dev

如何使用Vega-lite过滤字符串前缀

来自分类Dev

在C中替换字符串前缀的正确方法

来自分类Dev

如何从以python中的前缀开头的列表中删除字符串

来自分类Dev

ng-class中的字符串前缀

来自分类Dev

如何在HQL中为Unicode字符串(T-SQL)使用“ N”前缀?

来自分类Dev

Bash中带前缀的字符串操作

来自分类Dev

正则表达式替换以删除字符串前缀中的数字

来自分类Dev

将前缀附加到 PowerShell/PowerCLI 中的字符串

来自分类Dev

如何检查 NSDictionary 中字符串的前缀?

来自分类Dev

字符串前缀和后缀在 Swift 中以“:”分隔

来自分类Dev

如何在加入的字符串中设置前缀?

来自分类Dev

Haskell - 通过前缀在列表中查找字符串

来自分类Dev

Haskell:根据列表匹配字符串前缀

来自分类Dev

使用带前缀的字符串查找容器的相等范围

Related 相关文章

热门标签

归档