首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从字符串中提取ADL FQDN的Regex

从字符串中提取ADL FQDN的Regex
EN

Stack Overflow用户
提问于 2017-08-24 22:24:29
回答 1查看 96关注 0票数 0

我试图使用Scala中的Regex从给定的字符串中提取Datalake。有人能帮忙吗?

代码语言:javascript
复制
Input = adl://asbwje-fhs.azuredatalakestore.net/123/wds/xyz=456/

Output = adl://asbwje-fhs.azuredatalakestore.net

ADL可以在定义中包含[a-zA-Z_-]。我试过以下几种方法:

代码语言:javascript
复制
scala> val ADLStorePattern = "(.*) ([a-zA-Z_-]+) (.net) (.*)".r
ADLStorePattern: scala.util.matching.Regex = (.*) ([a-zA-Z_-]+) (.net) (.*)

scala> val ADLStorePattern(adl, _, _) = "adl://asbwje-fhs.azuredatalakestore.net"
scala.MatchError: adl://asbwje-fhs.azuredatalakestore.net (of class java.lang.String)
  ... 32 elided

scala> val ADLStorePattern(adl, _) = "adl://asbwje-fhs.azuredatalakestore.net"
scala.MatchError: adl://asbwje-fhs.azuredatalakestore.net (of class java.lang.String)
  ... 32 elided

scala> val ADLStorePattern(_, adl, _) = "adl://asbwje-fhs.azuredatalakestore.net"
scala.MatchError: adl://asbwje-fhs.azuredatalakestore.net (of class java.lang.String)
  ... 32 elided

scala> val ADLStorePattern(_, adl, _, _) = "adl://asbwje-fhs.azuredatalakestore.net"
scala.MatchError: adl://asbwje-fhs.azuredatalakestore.net (of class java.lang.String)
  ... 32 elided

scala> val ADLStorePattern = "([a-zA-Z_-]+) (.net) (.*)".r
ADLStorePattern: scala.util.matching.Regex = ([a-zA-Z_-]+) (.net) (.*)

scala> val ADLStorePattern(adl, _) = "adl://asbwje-fhs.azuredatalakestore.net"
scala.MatchError: adl://asbwje-fhs.azuredatalakestore.net (of class java.lang.String)
  ... 32 elided

scala> val ADLStorePattern(adl, _, _) = "adl://asbwje-fhs.azuredatalakestore.net"
scala.MatchError: adl://asbwje-fhs.azuredatalakestore.net (of class java.lang.String)
  ... 32 elided
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-24 23:18:29

您可以从Regex模式的第一组提取FQDN,如下所示:

代码语言:javascript
复制
val url = "adl://asbwje-fhs.azuredatalakestore.net/123/wds/xyz=456/"

val pattern = """(adl://[^/]*)(/.*)?""".r

val fqdn: String = url match {
  case pattern(x, _) => x
  case _ => "No match!"
}
// fqdn: String = adl://asbwje-fhs.azuredatalakestore.net

第二个可选组包括URL仅由FQDN部分组成的情况。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45871815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档