Java 创建用于清理公司名称的正则表达式
我想通过删除所有“有限公司”、“有限公司”等来清理公司名称 我是新来的正则表达式,我搜索过类似的问题,但没有一个对我有用,因为它们的语法不同,或者不适合我的问题 我导入了一个带有世界上所有已知后缀的CSV文件,作为我的refex的基础。CSV的内容如下所示:Java 创建用于清理公司名称的正则表达式,java,regex,Java,Regex,我想通过删除所有“有限公司”、“有限公司”等来清理公司名称 我是新来的正则表达式,我搜索过类似的问题,但没有一个对我有用,因为它们的语法不同,或者不适合我的问题 我导入了一个带有世界上所有已知后缀的CSV文件,作为我的refex的基础。CSV的内容如下所示: ... co commv coop corp corporation cpora cpt crl cv cvoa cxa da ... 代码如下: //BS:读取通用公司后缀并创建正则表达式字符串的方法 公共字符串readCSVMappi
...
co
commv
coop
corp
corporation
cpora
cpt
crl
cv
cvoa
cxa
da
...
代码如下:
//BS:读取通用公司后缀并创建正则表达式字符串的方法
公共字符串readCSVMapping(){
字符串结果=”;
int i=0;
try(Scanner Scanner=新的扫描仪(新文件(“data/ofac/other/company_suffix_cln.csv”);){
while(scanner.hasNextLine()){
字符串行=scanner.nextLine();
尝试(扫描器行扫描器=新扫描器(行)){
rowScanner.useDelimiter(“;”);
while(rowScanner.hasNext()){
如果(i==0){
结果=结果+行扫描程序.next().toUpperCase();
i++;
}
否则{
结果=结果+“|”+行扫描程序.next().toUpperCase();
}
}
}
}
}catch(filenotfounde异常){
e、 printStackTrace();
}
//BS:按字符串长度对字符串排序(降序)
String[]results=result.split(“\\\\”);
排序(结果,(a,b)->b.length()-a.length());
结果=String.join(“|”,results);
返回结果;
}
不幸的是,它还将“ba”从“bank”中删除,这是我不想要的。我试图在结果字符串中添加边界,但根本没有删除后缀。。例如:
result=result+“|”+“\\\b”+rowScanner.next().toUpperCase()+“\\\b”代码>
提前谢谢你
谢谢你的回复,但答案其实很简单
if(i==0){
结果=结果+“\\b”+行扫描程序.next().toUpperCase()+“\\b”;
i++;
}
否则{
结果=结果+“|”+“\\b”+行扫描程序。下一步().toUpperCase()+“\\b”;
}
现在可以用了你能举一些例子吗?很少有名字/字符串适合你,也很少有不适合你。试着用“\\b”
代替“\\\b”
(这是一个反斜杠,后面跟着一个反斜杠)。也许值得用一些示例正则表达式输入/输出代码替换你的csv读取代码。data/ofac/other/company\u suffix\u cln.csv共享这个文件。当然,这里有一个例子:“苏格兰银行股份有限公司”
我的代码返回奥特兰银行