gpt4 book ai didi

java - 为什么正则表达式\pL+\pM+ 不适用于英语?

转载 作者:行者123 更新时间:2023-12-01 14:37:23 25 4
gpt4 key购买 nike

为什么正则表达式 \pL+\pM+ 不适用于英语?

为什么下面的第一个示例结果为 false,而第二个示例结果为 true?

System.out.println(Charset.forName("UTF-8").encode("suren") 
.asCharBuffer().toString().matches("\\PL+\\PM+"));

System.out.println(Charset.forName("UTF-8").encode("स्वागत")
.asCharBuffer().toString().matches("\\PL+\\PM+"));

基本上我需要一个正则表达式来限制字符串中的unicode字符(世界上的任何语言)

最佳答案

你想要

"^[\\p{Letter&}\\p{Mark}]+$"

您的正则表达式需要一个标记(\PM+),而您只想允许它。另请注意 anchor 。

一般说明:我建议使用 Unicode 字符属性的长形式。它使表达式更具可读性。

关于java - 为什么正则表达式\pL+\pM+ 不适用于英语?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16352945/

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