我正在尝试"玩"使用一些REST API和JAVA代码。
当我主要使用德语时,我已经设法让Apache HTTP客户端与UTF-8编码一起使用,以确保" Umlaut"以正确的方式处理。
仍然我无法正确匹配我的单词。
我尝试找到"büro_licht"之类的单词/单词组合。从 ..."type":"Büro_Licht"...
等字符串。
使用REGEX表达式".*?type":"(\w+).*?"
返回" B&quot"对我来说,因为它不认识"ü"作为一个字符。显然, w据说是[A-Z A-Z 0-9]。在没有特殊字符的字符串中,我得到了完整的" Office_light"。同时。
所以我在这里尝试了另一个提到的提示,就像我无法发表评论,因为我缺乏声誉点(。
使用REGEX表达式".*?type":"(\p{L}).*?"
返回"Büro"为我。但是在这里再次切断了下划线,原因是我不明白的原因。
有一种很好的方法来结合两种表达式以获得"完整"包括下划线和特殊字符的单词?
如果您必须继续使用Regex,这不是解析JSON的好工具,请尝试p{L}_
。在您的情况下,将是:
String regex = ".*?type":"[\p{L}_]+"";
在线示例:https://regex101.com/r/57ofd5/2
p {l}匹配任何语言的任何字母
_匹配字符_字面上(敏感(
,如果您需要支持其他语言,白色空间和其他各种UTF代码点,这将变得忙碌。例如,您是否需要支持:
周围的白色空间随机数?看看有关删除表情符号的答案,有很多角案。