example :"4054a4:e8 c8 f0 ff ff callq 404571 <junkfunction+0x552>"
o/p :" 4054a4:e8c8f0ffff callq 404571<junkfunction+0x552>"
我尝试使用
string.replaceall("[ (? )]", "")
但它也取消了callq和404571之间的空间。
有人可以帮帮我吗?
答案 0 :(得分:2)
您可以使用以下表达式:
(?=\S)
// ^
// There is a space here
这将匹配任何空格字符,只要它后面跟不是空格\S
的东西。
或者,如果你更喜欢常规空格,那么:
(?! )
在Java中:
String input = "4054a4:e8 c8 f0 ff ff callq 404571 <junkfunction+0x552>";
String result = input.replace(" (?! )", "");
答案 1 :(得分:2)
如果我理解得很好,你可以使用:
yourstring.replaceAll(" (?! )", "");
答案 2 :(得分:2)
你想:
string.replaceall("(?<! ) (?! )", "")
只有在任何一侧没有其他空格时才删除空格。如您的示例所示,保留2个或更多空间的系列。
Working on RegExr - 生成您的确切输出字符串
in: 4054a4:e8 c8 f0 ff ff callq 404571 <junkfunction+0x552>
out: 4054a4:e8c8f0ffff callq 404571<junkfunction+0x552>
答案 3 :(得分:0)
可以做得很蠢:
string = string.replaceAll("( +) ", "$1");
删除至少两个空格的任何序列,少一个。
取决于边界情况(字符串末尾的空格)。