为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用正则表达式删除破折号和空格?

如何使用正则表达式删除破折号和空格?

largeQ 2023-06-21 13:25:55
我在从我的代码中删除破折号和空格时遇到问题。例如:我希望 JD Smith Company 只是 JDSmith,或者 Mike-Jones Inc 只是 MikeJones。下面是我目前拥有的代码。Pattern p = Pattern.compile("[\\.$|,|;|'|-|\\s|-]|\\b(\\s|LLC|Company|Incorporated|Co|Manufacturer|The|Limited|Ltd|Inc|Chemicals|Solutions|-\\s)\\b", Pattern.CASE_INSENSITIVE);Matcher m = p.matcher(dncMfgName.getStringCellValue());String name = m.replaceAll("");像 LLC 和 Inc 这样的词似乎消失了,但算法似乎被空格绊倒了。对于任何多余的代码表示歉意,我对此仍然有点陌生!
查看完整描述

1 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

  • 不要在字符类|内部使用[],除非您想匹配该|字符。

  • 没必要进去-两次。

  • -在字符类中具有特殊含义[],因此您需要对其进行转义(或将其放在最前面或最后)。

  • .在字符类中没有特殊含义[],因此无需转义它。

  • \s匹配所有空格,但您不想替换换行符,因此请改用\h

  • 无需在正则表达式的后半部分中匹配\s或(已在前半部分中介绍)。-

总而言之,这意味着:

[\h.$,;'-]|\b(?:LLC|Company|Incorporated|Co|Manufacturer|The|Limited|Ltd|Inc|Chemicals|Solutions)\b

请参阅演示


查看完整回答
反对 回复 2023-06-21
  • 1 回答
  • 0 关注
  • 106 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信