在 java 中使用正则表达式找出字符串中的给定单词

Find out a given word in a String using Regex in java

给定一个字符串, 在 java 或 java 代码中使用 regex 我必须从给定的字符串中找出选举人姓名:

                "K ~\n" +
                "m W swim\n" +
                "sfiaruqsr\n" +
                "wvnn 021m: r’ i\" W' _ ~\n" +
                "_ 4'“; x ‘ D\n" +
                "W ma ¢ “ii-a? “Rm qwfl\n" +
                "Electors name ; Moleslwar Moreshva;\n" +
                "Tuwal\n" +
                "mam-a #02,qu _\n" +
                "F\n" +
                "Fm“ Name : Momma! Tuppal I\n" +
                "‘ e\n" +
                "Pam sq» : w! MALE '\n" +
                "“WW/Dale m mm ; XX/xxnsae _‘"

对于给定的字符串,输出应该是:Moleslwar Moreshva Tuwal

不能对任何内容进行硬编码,因为字符串响应每次都在变化。 请帮助:)

没有名称结束分隔符,因此必须假设需要从 Electors name 所在的行和下一行捕获全名。捕获后,用 space.

替换不需要的字符

这里是java解析名字的代码,

public static void main(String[] args) {
    String s = "K ~\n" +
            "m W swim\n" +
            "sfiaruqsr\n" +
            "wvnn 021m: r’ i\" W' _ ~\n" +
            "_ 4'“; x ‘ D\n" +
            "W ma ¢ “ii-a? “Rm qwfl\n" +
            "Electors name ; Moleslwar Moreshva;\n" +
            "Tuwal\n" +
            "mam-a #02,qu _\n" +
            "F\n" +
            "Fm“ Name : Momma! Tuppal I\n" +
            "‘ e\n" +
            "Pam sq» : w! MALE '\n" +
            "“WW/Dale m mm ; XX/xxnsae _‘";

    Pattern p = Pattern.compile("Electors name\s*;\s*([\w; ]+\n\w+)");
    Matcher m = p.matcher(s);
    if (m.find()) {
        System.out.println(m.group(1).replaceAll(";\n", " "));
    } else {
        System.out.println("Didn't match");
    }
}

这将打印以下输出,

Moleslwar Moreshva Tuwal