java - 在java正则表达式中获取匹配的模式值

标签 java regex

我正在用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)*)

我能以某种方式获得实际匹配的信息吗

l

e

...

等等

如您所见,有时它不是一个字母。

最佳答案

您可以实现这一点,一旦模式匹配,使用 Matcher 类的 group() 方法检索 macthed 字符串,并传递 0 作为值。然后将该字符串转换为字符数组并打印这些字符,如下所示

  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]);

  }

关于java - 在java正则表达式中获取匹配的模式值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39784668/

相关文章:

正则表达式删除R中的特定多字节字符

regex - 仅提取与 R 中的正则表达式模式匹配的字符串部分

java - 与自定义字体相关的 Eclipse LogCat 错误

java - 切片一个非常大的 jpg map 图像,49000* 34300 像素

java - Matlab - Java 接口(interface)

c# - 如何在一行代码中转义所有值得转义的字符?

regex - 如何处理 Google App Engine app.yaml 中的尾部斜杠

java - 使用 Java RegEx 查找以大写字母开头并包含小写字母的单词

java - 在 MF8 分析控制台中获取日志记录需要哪些配置?

java - Android - 使用 ant 创建更改配置值的构建配置