Java regexp中的排除
我有一个字符串,比如: {“_id”:ObjectId(“4ebb9544e4b097b7e6617e1c”),“_类”: 我需要一个字符串,如: {“_id”:“4ebb9544e4b097b7e6617e1c”,“_类”:Java regexp中的排除,java,regex,Java,Regex,我有一个字符串,比如: {“_id”:ObjectId(“4ebb9544e4b097b7e6617e1c”),“_类”: 我需要一个字符串,如: {“_id”:“4ebb9544e4b097b7e6617e1c”,“_类”: 如何在java中进行此转换?如果您确实知道字符串的确切形式,并且对象ID始终是十六进制的,您可以执行以下操作: s = s.replaceAll("ObjectId\\( ([^)]+) \\)", "$1"); 好的,用x替换ObjectId(x)(提示:使用“捕获组
如何在java中进行此转换?如果您确实知道字符串的确切形式,并且对象ID始终是十六进制的,您可以执行以下操作:
s = s.replaceAll("ObjectId\\( ([^)]+) \\)", "$1");
好的,用
x
替换ObjectId(x)
(提示:使用“捕获组”)。足够简单…尽可能“简单”永远都是正则表达式。你尝试过什么代码?你也遇到了我的问题。如果你有一个)在另一个内部,在最后一个之前),你的正则表达式失败。@FailedDev:我不认为这是可能的:这个对象ID显然是十六进制的,所以我假设所有的对象ID都是十六进制的。(我的答案是明确的。)我相信Vladimir对您的答案的问题是它可以删除字符串中其他地方的)
,而不是它可以删除object-ID中的)
。@ruakh您是对的。ObjectId中的数据不能包含像“(”。我的问题是删除ObjectId()包装,不要触摸其他括号符号。很抱歉,我没有提供更详细的输入。