gpt4 book ai didi

Java 正则表达式不匹配德语 "Umlaut"或下划线

转载 作者:行者123 更新时间:2023-11-30 10:17:51 26 4
gpt4 key购买 nike

我正在尝试“尝试”一些 REST API 和 Java 代码。

因为我主要使用德语,所以我已经设法让 Apache HTTP 客户端使用 UTF-8 编码,以确保以正确的方式处理“元音变音”。

我仍然无法让我的正则表达式正确匹配我的话。

我尝试从 ..."type":"Büro_Licht"... 这样的字符串中找到像 "Büro_Licht"这样的单词/单词组合。

使用正则表达式 ".*?type\":\"(\\w+).*?" 为我返回“B”,因为它无法将“ü”识别为一个单词字符。显然,因为\w 被称为 [a-z A-Z 0-9]。在没有特殊字符的字符串中,我同时得到了完整的“Office_Light”。

所以我在几乎相同的问题中尝试了这里提到的另一个提示(我无法评论,因为我缺乏声誉点数)。

使用正则表达式 ".*?type\":\"(\\p{L}).*?" 为我返回“Büro”。但由于我不明白的原因,它再次在下划线处削减。

有没有一种很好的方法可以将两个表达式结合起来以获得包含下划线 特殊字符的“完整”单词?

最佳答案

如果您必须继续使用正则表达式,这不是解析 JSON 的好工具,请尝试 \p{L}_。在您的情况下,它将是:

String regex = ".*?type\":\"[\\p{L}_]+\"";

以在线为例:https://regex101.com/r/57oFD5/2

\p{L} matches any kind of letter from any language

_ matches the character _ literally (case sensitive)

如果您需要支持其他语言、空格和各种其他 UTF 代码点,这将变得很忙。例如,您是否需要在 : 周围支持随机数量的空格?看看this answer on removing emojis , 有很多角落案例。

关于Java 正则表达式不匹配德语 "Umlaut"或下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49555721/

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