groovy用空格替换文件中的数据

groovy用空格替换文件中的数据,groovy,Groovy,我想替换文件中的字符串。 我有这样一句话: qwe{data:"dede-dddd-ssss",login:"user",display:"screen"},abc,xyz 我想用空格替换从数据到登录的所有字符串 我试着这样做,我只能替换字符串,有没有办法替换为字符串的起点和终点 def source = new File("c:\\sq\\file1.txt") def dest = new File("c:\\sq\\file2.txt") def fileText = source

我想替换文件中的字符串。 我有这样一句话:

qwe{data:"dede-dddd-ssss",login:"user",display:"screen"},abc,xyz
我想用空格替换从数据到登录的所有字符串

我试着这样做,我只能替换字符串,有没有办法替换为字符串的起点和终点

def source = new File("c:\\sq\\file1.txt") 
def dest = new File("c:\\sq\\file2.txt") 

def fileText = source.text
def filedest = dest.text
for ( index in 1..9 ) {
    fileText = (fileText =~ /data/).replaceFirst("")

我不完全清楚你想要的结果是什么。如果要从输入字符串中删除“data”和“login”字段以及相应的值,例如:
qwe{data:“dede dddd ssss”,登录:“user”,显示:“screen”},abc,xyz
变成:
qwe{display:“screen”}、abc、xyz
然后您可以轻松地使用正则表达式来执行此操作

以下代码:

​String str = """qwe{data:"dede-dddd-ssss",login:"user",display:"screen"},abc,xyz"​​""
str = str.replaceFirst("​​​​​​​​​​​​​data.*login:\".+?\",", '')
println str​

打印
qwe{display:“screen”}、abc、xyz

我不完全清楚您想要的结果是什么。如果要从输入字符串中删除“data”和“login”字段以及相应的值,例如:
qwe{data:“dede dddd ssss”,登录:“user”,显示:“screen”},abc,xyz
变成:
qwe{display:“screen”}、abc、xyz
然后您可以轻松地使用正则表达式来执行此操作

以下代码:

​String str = """qwe{data:"dede-dddd-ssss",login:"user",display:"screen"},abc,xyz"​​""
str = str.replaceFirst("​​​​​​​​​​​​​data.*login:\".+?\",", '')
println str​

打印
qwe{display:“screen”}、abc、xyz

此代码具有正则表达式的锚定版本(to
{
):

def fileText = '''\
qwe{data:"dede-dddd-ssss",login:"user",display:"screen1"},abc,xyz
...
qwe{data:"data2",login:"user2",display:"screen2"},abc,xyz
...
qwe{data:"data3",login:"user3",display:"screen3"},abc,xyz\
'''

fileText = fileText.replaceAll(/(?<=\{)\s*data:[^,]+,\s*login:[^,]+,/ , '')
println fileText
也可以在

更新

如果正确理解您的请求:以下代码从
c:\\sq\\file1.txt
)读取输入文本,并将修改后的文本放入目标文件
dest
c:\\sq\\file2.txt
):

def source=新文件(“c:\\sq\\file1.txt”)
def dest=新文件(“c:\\sq\\file2.txt”)
dest.write(source.text

.replaceAll(/(?此代码具有正则表达式的锚定版本(到
{
):

def fileText = '''\
qwe{data:"dede-dddd-ssss",login:"user",display:"screen1"},abc,xyz
...
qwe{data:"data2",login:"user2",display:"screen2"},abc,xyz
...
qwe{data:"data3",login:"user3",display:"screen3"},abc,xyz\
'''

fileText = fileText.replaceAll(/(?<=\{)\s*data:[^,]+,\s*login:[^,]+,/ , '')
println fileText
也可以在

更新

如果正确理解您的请求:以下代码从
c:\\sq\\file1.txt
)读取输入文本,并将修改后的文本放入目标文件
dest
c:\\sq\\file2.txt
):

def source=新文件(“c:\\sq\\file1.txt”)
def dest=新文件(“c:\\sq\\file2.txt”)
dest.write(source.text

.replaceAll(/(?如果您希望它出现在文件中,那么您可以在下面尝试,并在test2.txt中找到更新的数据:

注意:请根据您的环境更新文件路径

礼节@GsusRecovery for regex

def fileContent = new File('/tmp/test.txt').text
def replacedContent = fileContent.replaceAll(/(?<=\{)\s*data:[^,]+,\s*login:[^,]+,/ , '')
def newFile = new File('/tmp/test2.txt')
newFile.write(replacedContent)
def fileContent=新文件('/tmp/test.txt')。text

def replacedContent=fileContent.replaceAll(/(?如果您希望它出现在文件中,那么您可以在下面尝试,并在test2.txt中找到更新的数据:

注意:请根据您的环境更新文件路径

礼节@GsusRecovery for regex

def fileContent = new File('/tmp/test.txt').text
def replacedContent = fileContent.replaceAll(/(?<=\{)\s*data:[^,]+,\s*login:[^,]+,/ , '')
def newFile = new File('/tmp/test2.txt')
newFile.write(replacedContent)
def fileContent=新文件('/tmp/test.txt')。text

def replacedContent=fileContent.replaceAll(/)谢谢你mbaird,我把代码的最后两行替换为:fileText=fileText.replaceFirst(“​​​​​​​​​​​​​data.*login:\“+?\”,“,”,“”)它对我不起作用,我正在尝试在文件中执行它。谢谢你,mbaird,我将代码的最后两行替换为:fileText=fileText.replaceFirst(“”)​​​​​​​​​​​​​数据。*登录名:\“+?\”,“,”)它对我不起作用,我正试图在一个文件中执行。它在执行后不起作用,文件保持相同的数据它在执行后不起作用,文件保持相同的数据我尝试过,我没有删除数据,所有数据都存在于test2.txt文件中文件内容太长,我将尝试附加chrao,@TemplogLog:谢谢上瘾,我'我修改了代码以适应OP请求看看这里我解释了我想从响应文件中保留什么,只有配置文件和端点,其余的应该删除,我从昨天开始就在尝试。@TemplogLog,我记得现在,您根据附件提出了另一个与此相关的问题。您可以使用json而不是文本代表轻松做到这一点。@TemplogLog花边。如果我有机会,可能会更新其他问题,如果我能找到它的参考。我尝试过,我没有删除数据,所有数据都存在于test2.txt文件中。文件内容太长,我将尝试附加:@TemplogLog:感谢上瘾,我修改了代码以适应OP请求。看看这里,我解释了我想要保留的内容在响应文件中,只有配置文件和端点,其余的应该删除,我从昨天开始就在尝试。@TemplogLog,我记得现在,您根据附件提出了另一个与此相关的问题。您可以轻松地使用json而不是文本替换。如果有机会,我可能会更新其他问题,如果我能找到它的引用。