Java 正则表达式 ReplaceAll 未按预期工作

标签 java regex mule mule-studio

我有以下 Java 正则表达式 (https://.*?/api/FHIR/DSTU2/) 来匹配以下模式 https://somserver.esm.somedomain.edu/TST/api/FHIR/DSTU2/ 中的 URL在大型 JSON 结果中,

并将其替换为另一个 URL,例如 https://api.anotherdomain.edu/FHIR/DSTU2/ .

我要替换的 URL 在 JSON 结果中出现多次。我正在使用 Java ReplaceAll 函数,有时它会失败,并且收到错误“预期”,“而不是”“”。发生这种情况是因为 JSON 结果在替换过程中变得困惑,并且无法正确解析。奇怪的是,我使用了在 JAVA 正则表达式测试器中失败的相同 JSON 结果,而正则表达式似乎工作正常。你看到这里有什么不正常的地方吗?谢谢!

最佳答案

试试这个,

1.Object To String 返回类 java.lang.String

2.使用以下代码的表达式

import java.util.regex.*;

payload=payload.replaceAll("https[:]//.*./api/FHIR/DSTU2/", "https://api.anotherdomain.edu/FHIR/DSTU2/");

return payload;

最终的 xml 流程将是

     <object-to-string-transformer returnClass="java.lang.String" doc:name="Object to String"/>
        <expression-component doc:name="Expression"><![CDATA[import java.util.regex.*;

payload=payload.replaceAll("https[:]//.*./api/FHIR/DSTU2/", "https://api.anotherdomain.edu/FHIR/DSTU2/");

return payload;]]></expression-component>

        <object-to-string-transformer doc:name="Object to String"/>

enter image description here

关于Java 正则表达式 ReplaceAll 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49436102/

相关文章:

java - 复合选择的 Hibernate 查询版本

javascript - 如何删除字符串中重复的空格?

正则表达式说什么不匹配?

java - 从 catch-exception-strategy 抛出自定义异常

mule - DataWeave 2 中的空检查

java - Mule ftp 入站没有 sizeCheckWaitTime 属性

java - 从服务启动应用程序

java - 如何检查电子邮件地址是否存在

java - 浏览器正在记住页面内容,并且不通过 spring security 检查 html 文件

java - Android 用 Html.fromHtml 范围替换所有出现的文本