gpt4 book ai didi

java - 正则表达式 - 用换行符替换标签之间的文本

转载 作者:太空宇宙 更新时间:2023-11-04 10:58:21 26 4
gpt4 key购买 nike

我已从 soaupui 请求中提取了请求文本,并尝试用新 header 替换所有内容。我尝试了几种不同的表达式,但我认为匹配时遇到问题,因为文本包含换行符。

下面是我尝试过的最新的

strRequest3 = strRequest3.replaceAll("<soapenv:Envelope(.*?
\\R)<soapenv:Header/>","<soap:Envelope " + strNewHeader + "</soap:Header>");
log.info strRequest3

下面是我尝试插入新的第一行和标题的示例 XML

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:urn="urn:dhs-gov-au:ccs:pms:sessionreport">
<soapenv:Header/>
<soapenv:Body>

任何关于我可以尝试实现上述目标的正则表达式的想法将非常感激

谢谢

最佳答案

如果您希望 .* 匹配换行符,则必须使用 s 标志 (dotall) 进行正则表达式。

在 Java 中,您可以通过在正则表达式前面添加 (?s) 来设置此标志。

String str = "<soapenv:Envelope>123123\n" +
"123123\n" +
"1231422343\n<soapenv:Header/>";
String replacement = "new";

System.out.println(str.replaceAll("(?s)<soapenv:Envelope>(.*)<soapenv:Header/>",
"<soapenv:Envelope>" + replacement + "<soapenv:Header/>"));

关于java - 正则表达式 - 用换行符替换标签之间的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47149952/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com