我想只保留以点分隔的字符串的最后一个字词
示例:
我的字符串是:
ABC" val1.val2.val3.val4" ZZZ
使用正则表达式后的预期字符串:
ABC" VAL4" ZZZ
这意味着我希望左侧的内容用点分隔(。)
我尝试的最相关的是
doc.Load(filepath)
结果是:
ABC" .val4" ZZZ
你能告诉我你的正则表达式有不同的解决方案吗?
由于
答案 0 :(得分:1)
您可以使用
val s = """abc"val1.val2.val3.val4"zzz"""
val res = "(\\w+\")[^\"]*\\.([^\"]*\")".r replaceAllIn (s, "$1$2")
println(res)
// => abc"val4"zzz
请参阅Scala demo
模式详情:
(\\w+\")
- 第1组捕获1个字字符和"
[^\"]*
- 除"
\\.
- 一个点([^\"]*\")
- 第2组捕获除"
以外的0 +字符,然后捕获"
。 $1
是第一组的反向引用,$2
在第2组中插入文本。
答案 1 :(得分:0)
可能没有Regex:
scala> json.split("\"").map(_.split("\\.").last).mkString("\"")
res4: String = abc"val4"zzz
这假设你想要每个"令牌" (由"
分隔)成为最后一个以点分隔的内部令牌。