gpt4 book ai didi

java - 正则表达式 - 接受拉丁/ucs2 字符

转载 作者:行者123 更新时间:2023-12-01 14:36:52 26 4
gpt4 key购买 nike

我正在尝试编写一个正则表达式来接受拉丁/UCS2 字符。但我这样做时遇到错误。在以下代码中,“text1”应作为模式传递。我仍在研究这个问题。谁能帮我解决这个问题吗?

    String text1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz  !\"#$%&'()*+,-./:;<=>?@"
+ "{|}~¡ ";
String pattern = "^[a-zA-Z0-9\\*\\?\\$\\[\\]\\(\\)\\|\\{\\}\\/\\'\\#\\~\\.,;\"\\<=\\>-@%&!+:~¡ ]+$";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(text1);
if (m.find()) {
System.out.println("true");
}

最佳答案

什么不起作用?模式不匹配或者是否有错误消息?

我首先看到的是,您已经转义了很多字符,这些字符不需要转义,而且一个重要的字符没有转义。

在字符类中,只有少数字符在第一个位置时具有特殊含义[]-^。您尚未转义 -,这可能会导致错误,因此请尝试:

String pattern = "^[a-zA-Z0-9*?$\\[\\]()|{}/'#~.,;\"<=>\\-@%&!+:~¡ £¤¥ §¿ ÄÅÆÇÉÑÖØÜßàäåæ èéìñòöøùü  ]+$";

接下来是:看看 Unicode Properties/Scripts 。您可以例如使用 \\p{L} 匹配任何语言的字母。

String pattern = "^[\\p{L}\\p{M}0-9*?$\\[\\]()|{}/'#~.,;\"<=>\\-@%&!+:~¡ £¤¥ §¿]+$";

将匹配您在类里面的所有字母以及更多!

关于java - 正则表达式 - 接受拉丁/ucs2 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16412523/

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