我想用字符串
替换部分文本示例:
来自
s3://provider/subject/foo=table/bar=NA/date=20140914
到
s3://provider/subject/foo=table/bar=NA/date=2014
非常感谢您的帮助。感谢
答案 0 :(得分:2)
如果您总是需要跳过日期的最后一位数,就像您提供的字符串一样,您可以使用:
"s3://provider/subject/foo=table/bar=NA/date=20140914".dropRight(4)
答案 1 :(得分:0)
正则表达式:
(=\d{4})\S*
(=\d{4})
会捕获前四位数字以及前导=
符号。 \S*
匹配零个或多个非空格字符。
替换字符串:
$1
将匹配的字符替换为第一组内的字符将为您提供所需的输出。
答案 2 :(得分:0)
一个简单的解决方案。
查找:(date=\d{4})\d{4}
替换:\1
答案 3 :(得分:0)
答案 4 :(得分:0)
在Scala中:
val s = "s3://provider/subject/foo=table/bar=NA/date=20140914"
s.replaceAll("""(date=\d{4})\d{4}""", "$1")
//res0: String = s3://provider/subject/foo=table/bar=NA/date=2014
或者,我想如果格式一致:
s.dropRight(4)
//res1: String = s3://provider/subject/foo=table/bar=NA/date=2014
答案 5 :(得分:0)
有关
val s = "s3://provider/subject/foo=table/bar=NA/date=20140914"
提取日期字段
val pattern = """(.*)date=(\w+)""".r
val pattern(_, date) = s
date: String = 20140914
然后替换(格式化)它,例如像这样,
s.replace(date, date.take(4))
res: s3://provider/subject/foo=table/bar=NA/date=2014