Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java regexp中的排除_Java_Regex - Fatal编程技术网

Java regexp中的排除

Java regexp中的排除,java,regex,Java,Regex,我有一个字符串,比如: {“_id”:ObjectId(“4ebb9544e4b097b7e6617e1c”),“_类”: 我需要一个字符串,如: {“_id”:“4ebb9544e4b097b7e6617e1c”,“_类”: 如何在java中进行此转换?如果您确实知道字符串的确切形式,并且对象ID始终是十六进制的,您可以执行以下操作: s = s.replaceAll("ObjectId\\( ([^)]+) \\)", "$1"); 好的,用x替换ObjectId(x)(提示:使用“捕获组

我有一个字符串,比如:

{“_id”:ObjectId(“4ebb9544e4b097b7e6617e1c”),“_类”:

我需要一个字符串,如:

{“_id”:“4ebb9544e4b097b7e6617e1c”,“_类”:


如何在java中进行此转换?

如果您确实知道字符串的确切形式,并且对象ID始终是十六进制的,您可以执行以下操作:

s = s.replaceAll("ObjectId\\( ([^)]+) \\)", "$1");

好的,用
x
替换
ObjectId(x)
(提示:使用“捕获组”)。足够简单…尽可能“简单”永远都是正则表达式。你尝试过什么代码?你也遇到了我的问题。如果你有一个)在另一个内部,在最后一个之前),你的正则表达式失败。@FailedDev:我不认为这是可能的:这个对象ID显然是十六进制的,所以我假设所有的对象ID都是十六进制的。(我的答案是明确的。)我相信Vladimir对您的答案的问题是它可以删除字符串中其他地方的
,而不是它可以删除object-ID中的
。@ruakh您是对的。ObjectId中的数据不能包含像“(”。我的问题是删除ObjectId()包装,不要触摸其他括号符号。很抱歉,我没有提供更详细的输入。