在文本列中查找以特定字符串开头和结尾的子字符串

时间:2018-03-13 20:50:50

标签: scala apache-spark-sql spark-dataframe

我尝试扫描文本数据框列并检索以特定字符串开头并以特定字符串结尾的字符串。我尝试将子字符串与instr一起使用,但无法使其正常工作。

1 个答案:

答案 0 :(得分:0)

你可以做的是使用正则表达式和模式匹配来实现这个

@ def getText(startsWith: String, endsWith: String)(text: String): (String, String) = {
    val rr = s"($startsWith(.+?)$endsWith)".r
    text match {
      case rr(all, partial) => (all, partial)
      case _ => ("", "")
    }
  } 
defined function getText

@ getText("1", "2")("1hdfjhsdf2") 
res5: (String, String) = ("1hdfjhsdf2", "hdfjhsdf")

这应该做你想做的事情