我正在用java做一些音译,一切都很好,但是匹配模式会很好。有可能吗?
例如:
姓氏 GULEVSKAIA 我生成了这样的模式
(^g+(yu|u|y)l+(io|e|ye|yo|jo|ye)(v|b|w)+(s|c)+(k|c)+a(ya|ia|ja|a|y)(a)*)
我可以以某种方式获取实际匹配的信息
克
û
1
ë
...
等
如您所见,有时它不是一个字母。
答案 0 :(得分:1)
一旦模式匹配,你可以实现这一点,使用Matcher类的group()方法将0传递为值来检索macthed字符串。然后将该字符串转换为chars数组并打印下面的字符
String line = "gulevskaia";
String pattern = "(^g+(yu|u|y)l+(io|e|ye|yo|jo|ye)(v|b|w)+(s|c)+(k|c)+a(ya|ia|ja|a|y)(a)*)";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(line);
if (m.find( )) {
System.out.println("Found value: " + m.group(0) );
char chars[] =m.group(0).toCharArray();
for(int i=0;i<chars.length;i++)
System.out.println(chars[i]);
}