Java - 正则表达式解析字符串

标签 java regex

尝试用给定的样本解析名称

++++++++++++++++++SELIZABETH+COLLAZO+++++++++++++++++++
+++++++++++++++++++PALOMA+CORREA+++++++++++++++++++++++
+++++++++++++++++++NOAH+BLAKEMORE++++++++++++++++++++++

我已经尝试过

//++(.*?)+(.*?)//++

但这还很遥远。

想将名字和姓氏解析为两个字符串。

最佳答案

您可以使用此正则表达式 (\w+)\+(\w+)\+{2,}(.*?)\+(.*?)\+{ 2,} 与这样的模式:

String str = "++++++++++++++++++SELIZABETH+COLLAZO+++++++++++++++++++\n"
        + "+++++++++++++++++++PALOMA+CORREA+++++++++++++++++++++++\n"
        + "+++++++++++++++++++NOAH+BLAKEMORE++++++++++++++++++++++";

Pattern pattern = Pattern.compile("(\\w+)\\+(\\w+)");// or instead "\\+{2,}(.*?)\\+"(.*?)\\+{2,}
Matcher matcher = pattern.matcher(str);

while (matcher.find()) {
    System.out.println(matcher.group(1) + " " + matcher.group(2));
}

输出

SELIZABETH COLLAZO
PALOMA CORREA
NOAH BLAKEMORE

关于Java - 正则表达式解析字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47161076/

相关文章:

regex - AWK,如果特定列的模式匹配则拆分文件中的内容

java - 验证密码不包含来自名称的 3 个以上连续字符

java - 将新组件添加到在另一个类中创建的 JPanel

c# - 从 Java 调用 C# 代码?

java - 多项目 Maven 设置中的 GET 托管模式

java - GridBagLayout 的问题

regex - 如何从某个起始位置找到字符串中第一次出现的模式?

java - 如何在 Java 中将 YAML 列表转换为字符串数组?

php - 获取无效日期并 preg_replace 它

java - 从文本文件中读取手机号码