gpt4 book ai didi

Java 正则表达式不匹配(俄语)

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:53:00 28 4
gpt4 key购买 nike

尝试匹配字符串“Манихина Галина Владимировна”和其他相同格式的字符串。也就是三个字的专有名词。我是正则表达式的新手,不确定我的陈述有什么问题。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {
public static void main(String [] args){
String temp = "Манихина Галина Владимировна";
Pattern pattern = Pattern.compile("^[а-я]+\\s[а-я]+\\s[а-я]+$", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(temp);
if (matcher.find()){
System.out.println(matcher.group(0));
}
}
}

最佳答案

根据 Java documentation文档正则表达式与 unicode 不匹配:

By default, case-insensitive matching assumes that only characters in the US-ASCII charset are being matched

为了使您的代码正常工作,请添加 UNICODE_CASE标志:

Pattern pattern = Pattern.compile("^[а-я]+\\s[а-я]+\\s[а-я]+$",
Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);

关于Java 正则表达式不匹配(俄语),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48453428/

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