[英]regex to replace characters in a string
我有一个像这样的字符串val str = "luckycore.util.BigNum("0")"
,字符串的前五个字符,例如lucky
是动态的,并且可以在字符串的其余部分修复时更改,我尝试的是得到输出为luckyInt(0)
即替换所有luckyInt(0)
除了动态一个与Int
并删除0
左右的引号,我尝试使用replace
和substring
方法,它的工作正常,但我想用regex
得到这个输出,我试过但没有什么工作,有人请帮助。
还有一个案例是:
input string = richardcore.util.BigNum("0")
output string = richardInt(0)
没有必要使用Regex,你可以简单地做到:
val str = """luckycore.util.BigNum("0")"""
val l = str.replace(str.substring(str.indexOf("core"),str.indexOf("(")).trim,"Int").replace("\"","")
您可以尝试使用Regex ([az]{5})(core\\.util\\.BigNum\\(\\"0\\"\\))
,然后将String替换为第一个捕获的Group 。
您可以在https://regex101.com/r/1DhgLo/1上使用此正则表达式
我不熟悉Scala或Java。 但正则表达式应该保持不变。
如果我正确理解您的要求,则不需要正则表达式。 您可以按如下方式定义一个简单函数(在Scala中):
// Replace substring trailing after the first n characters
def replaceTail(s: String, n: Int, tail: String) = {
s.substring(0, n) + tail
}
val str1 = """luckycore.util.BigNum("0")"""
replaceTail(str1, 5, "Int(0)")
res1: String = luckyInt(0)
val str2 = """richardcore.util.BigNum("0")"""
replaceTail(str2, 7, "Int(0)")
res2: String = richardInt(0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.