String Groovy:replaceLast()丢失
我需要Groovy脚本中的replaceLast()方法-替换最后一个子字符串。它在Java中可用,但在Groovy AFAIK中不可用。它必须以与下面replaceFirst相同的方式使用regexString Groovy:replaceLast()丢失,string,groovy,replace,String,Groovy,Replace,我需要Groovy脚本中的replaceLast()方法-替换最后一个子字符串。它在Java中可用,但在Groovy AFAIK中不可用。它必须以与下面replaceFirst相同的方式使用regex replaceFirst(CharSequence self, Pattern pattern, CharSequence replacement) Replaces the first substring of a CharSequence that matches the given comp
replaceFirst(CharSequence self, Pattern pattern, CharSequence replacement)
Replaces the first substring of a CharSequence that matches the given compiled regular expression with the given replacement.
编辑:对不起,不够具体。原始字符串是一个XML文件,同一个密钥(例如名称)多次出现。我想换最后一个
<Header>
<TransactionId>1</TransactionId>
<SessionId>1</SessionId>
<User>
<Name>Bob</Name>
...
</User>
<Sender>
<Name>Joe</Name>
...
</Sender>
</Header>
...
<Context>
<Name>Rose</Name>
...
</Context>
1.
1.
上下快速移动
...
乔
...
...
玫瑰
...
不知道Java中的replaceLast
是什么…它不在JDK中。。。如果它在JDK中,您可以在Groovy中使用它
无论如何,使用XML解析器来更改XML而不是使用正则表达式怎么样
给定一些xml:
def xml = '''<Header>
<TransactionId>1</TransactionId>
<SessionId>1</SessionId>
<User>
<Name>Bob</Name>
</User>
<Sender>
<Name>Joe</Name>
</Sender>
<Something>
<Name>Tim</Name>
</Something>
</Header>'''
然后,您可以对名为name
的所有节点执行深度优先搜索,并获取最后一个-1
节点:
def lastNameNode = parsed.'**'.findAll { it.name() == 'Name' }[-1]
然后,将该值设置为新字符串:
lastNameNode.value = 'Yates'
并打印新的XML:
println XmlUtil.serialize(parsed)
1.
1.
上下快速移动
乔
耶茨
不知道Java中的replaceLast
是什么…它不在JDK中。。。如果它在JDK中,您可以在Groovy中使用它
无论如何,使用XML解析器来更改XML而不是使用正则表达式怎么样
给定一些xml:
def xml = '''<Header>
<TransactionId>1</TransactionId>
<SessionId>1</SessionId>
<User>
<Name>Bob</Name>
</User>
<Sender>
<Name>Joe</Name>
</Sender>
<Something>
<Name>Tim</Name>
</Something>
</Header>'''
然后,您可以对名为name
的所有节点执行深度优先搜索,并获取最后一个-1
节点:
def lastNameNode = parsed.'**'.findAll { it.name() == 'Name' }[-1]
然后,将该值设置为新字符串:
lastNameNode.value = 'Yates'
并打印新的XML:
println XmlUtil.serialize(parsed)
1.
1.
上下快速移动
乔
耶茨
的可能重复,但我不能在Groovy中使用replaceLast(),或者我可以?怎么做?我决定使用前缀方法,而不是搜索最后一个事件。可能是的副本,但我不能在Groovy中使用replaceLast(),或者我可以?怎么做?我决定使用前缀方法,而不是搜索最后一个事件。嗯,我被一个搜索引擎误导了,我做了搜索,第一行是“string-java replaceLast()-Stack Overflow”-没有注意到这篇文章来自提问而不是回答:-)嗯,我被一个搜索引擎误导了,我做了搜索,第一行是“string-java replaceLast()-Stack Overflow”-没有注意到这篇文章来自问题而不是答案:-)