Java 正则表达式中的重音符号

发布于 2024-11-03 02:54:50 字数 165 浏览 1 评论 0原文

我想使用 Hibernate Validator 来验证一些列。据我了解,问题在于 java 中的 \w 标记不接受带有重音符号的字母。

有什么方法可以编写正则表达式,以便可以验证像 Relatório 这样的单词(我不想在括号之间写所有带有重音符号的字母,因为我希望在很多列中编写这个正则表达式)?

I'd like to use Hibernate Validator to validate some columns. The problem, as I understand, is that the \w marker in java doesn't accept letters with accents on them.

Is there any way that I could write the regexp so that words like Relatório could be validated (i wouldn't want to write all letters with accents between brackets, because I expect to be writing this regexp in a lot of columns)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

思念满溢 2024-11-10 02:54:50

Java regex 文档 有一个部分Unicode 类别(搜索“Unicode 块和类别的类”)。如果您只是寻找字母,我认为 \p{L} 是您想要的类别。

The Java regex documentation has a section on Unicode categories (search for "Classes for Unicode blocks and categories"). If you're just looking for letters, I think \p{L} is the category you want.

夜深人未静 2024-11-10 02:54:50

我有更多的运气:

\p{InCombiningDiacriticalMarks}+

在java中我使用以下方法:

import java.text.Normalizer;
import java.text.Normalizer.Form;

public static String removeAccents(String text) {
    return text == null ? null :
        Normalizer.normalize(text, Form.NFD)
            .replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
}

I had more luck with:

\p{InCombiningDiacriticalMarks}+

In java I use the following method:

import java.text.Normalizer;
import java.text.Normalizer.Form;

public static String removeAccents(String text) {
    return text == null ? null :
        Normalizer.normalize(text, Form.NFD)
            .replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文