我在從我的代碼中刪除破折號和空格時遇到問題。例如:我希望 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
請參閱演示。
添加回答
舉報
0/150
提交
取消