如何删除非字母数字字符之间的空格?例如
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}])
表示如果不带字母数字或不带字母数字,则匹配一个空格。