如何在Scala中应用正则表达式以匹配以确切给定单词开头的字符串?

时间:2019-06-19 10:16:05

标签: regex scala

我试图通过迭代包含列名的列表来匹配表列中的单词。 columnMap->映射,其中包含以下形式的列数据:key->locations

value->period:int|name:String|uniform_period:String|database:String|amount:Double|period_num:Int

在这些列中,我有一个配置单元分区列:period,该列存在于另一个列表中,为了确保我的分区列存在于表列中,我尝试使用{{1} }。

contains

如果输入列表: val columnMap = Map[String, String]() def partitionDataTypes(hiveTab:String, prtn_String_columns:String):String = { val pcols = prtn_String_columns.split(",").toSeq var pList = scala.collection.mutable.TreeSet[String]() columnMap.foreach { case (k, v) => if (columnMap.contains(hiveTab)) { var cols = columnMap(hiveTab).split("\\|") for (c <- cols) { for (p <- pcols) { if(c.contains(p)) pList ++ c } } } } println("Partition Columns: " + pList.toString()) pList.toString() } 包含:pcols,则contains函数将得出以下输出值:period,而我只需要获得完全匹配的“句点”即可。 我如何形成一个正则表达式模式来匹配period, uniform_period & period_num数据,方法是匹配每个元素,该元素以columnMap中的元素开始,并在上述循环中以pcols之前结束。

0 个答案:

没有答案