如何删除非字母数字字符之间的空格?例如


anti - C6 / 36 membrane antibodies
D2 NS1 - P1 - specific antibodies






anti-C6/36 membrane antibodies
D2 NS1-P1-specific antibodies

最佳答案

您可以使用这种基于环视的正则表达式进行搜索:

(?<![\p{L}\p{N}]) +| +(?![\p{L}\p{N}])


并将其替换为空字符串。

RegEx Demo

在Java中:

String repl = input.replaceAll( "(?<![\\p{L}\\p{N}]) +| +(?![\\p{L}\\p{N}])", "" );


(?<![\p{L}\p{N}]) | (?![\p{L}\p{N}])表示如果不带字母数字或不带字母数字,则匹配一个空格。

07-24 09:27