我有以下 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"/>
关于Java 正则表达式 ReplaceAll 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49436102/