我正在使用apache来转换一些数据。
我有一个字符串:他没有说,\“S\”顶!“,unescapeJson()给了我这个结果:他没有说”S“顶!”
是那么回事吗?我的预期结果是,他没有说“S\”顶!
如果函数是这样设计的,那么我如何才能得到预期的结果。
示例:
GetFile处理器刚刚读取了一个包含内容的文件:,他没有说,\“S\\”顶部!\“
发布于 2017-01-09 06:14:11
通过将ReplaceText 替换值属性更改为${'$1'},解决方法似乎是可行的。在我的示例中,这产生了所需的输出He didn't say, "S\"top!"。
我还不完全理解为什么,但我认为这与将搜索的输出作为替换的正则表达式进行评估有关,其中反斜杠是在应用unescapeJson()之前计算的,因此它最终是多余的。例如,如果将替换值设置为仅为$1,则不会发生这种情况。
更新
我上面的顺序错了,决议的顺序如下:
He didn’t say, \"S\\\"top!\"${'$1':unescapeJson()}为:He didn’t say, "S\"top!"He didn’t say, "S"top!"因此,unescapeJson()正在按预期工作,您没有预料到的行为是,剩余的反斜杠作为String::replaceAll()的工件丢失在替换中。
https://stackoverflow.com/questions/41530073
复制相似问题