gpt4 book ai didi

java - 正则表达式仅删除特殊字符而不删除其他语言字母

转载 作者:搜寻专家 更新时间:2023-11-01 01:40:00 25 4
gpt4 key购买 nike

我使用正则表达式从名称中删除特殊字符。该表达式将删除除英文字母以外的所有字母。

public static void main(String args[]) {
String name = "Özcan Sevim.";
name = name.replaceAll("[^a-zA-Z\\s]", " ").trim();
System.out.println(name);
}

输出:

zcan Sevim

预期输出:

Özcan Sevim 

我这样做的结果很糟糕,正确的方法是删除基于 ASCII 代码的特殊字符,这样其他字母就不会被删除,有人能帮我用一个只删除特殊字符的正则表达式吗?

最佳答案

您可以使用 \p{IsLatin}\p{IsAlphabetic}

name = name.replaceAll("[^\\p{IsLatin}]", " ").trim();

或者要删除标点符号,只需像这样使用 \p{Punct} :

name = name.replaceAll("\\p{Punct}", " ").trim();

输出

Özcan Sevim

查看 Summary of regular-expression constructs 的完整列表并使用可以帮助您的那个。

关于java - 正则表达式仅删除特殊字符而不删除其他语言字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51018532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com