从字符串中删除破折号,但当字符串被(a-z)包围时,不要从中间删除破折号

我读过类似的问题,但并不能完全回答我的问题。

我想从我的字符串中删除任何破折号,但不要像我的示例测试用例一样,在由(a-z)或(A-Z)包围的字符串中间的破折号。

我已经使用过此正则表达式代码,但可以清除所有破折号:

string.replaceAll("\\-", "");

测试用例

  • - 好
  • -好
  • 好*
  • 好-
  • 好 -

结果

  • 好*