JAVA正则表达式为“String,String”。

时间:2018-03-14 15:45:31

标签: java regex

给出字符串“Neil,Gogte。,Satyam,B。:Java简介”

我只需要提取“Neil,Gogte”。和“萨蒂扬,B”从使用正则表达式的给定字符串我该怎么办?

3 个答案:

答案 0 :(得分:0)

您可以matcher使用group

String str = "Neil, Gogte., Satyam, B.: Introduction to Java";
Pattern pattern = Pattern.compile("([a-zA-Z]+, [a-zA-Z]+\\.)");
Matcher matcher = pattern.matcher(str);

while(matcher.find()){
    String result = matcher.group();
    System.out.println(result);
}

答案 1 :(得分:0)

您可以使用以下正则表达式来拆分字符串。这匹配.,存在的任何位置:

(?<=\.),\s*
  • (?<=\.)确保前面的正面背后是字面点字符.
  • ,\s*匹配,后跟任意数量的空白字符

See code in use here

import java.util.*;
import java.util.regex.Pattern;

class Main {
    public static void main(String[] args) {
        final String s = "Neil, Gogte., Satyam, B.: Introduction to Java";
        final Pattern r = Pattern.compile("(?<=\\.),\\s*");
        String[] result = r.split(s);
        Arrays.stream(result).forEach(System.out::println);
    }
}

结果:

Neil, Gogte.
Satyam, B.: Introduction to Java

答案 2 :(得分:0)

您可以使用此正则表达式匹配您的姓名:

[A-Z][a-z]+, [A-Z][a-z]*\.

在Java中:

[A-Z][a-z]+, [A-Z][a-z]*\\.

那就匹配

  • [A-Z]匹配大写字符
  • [a-z]+匹配一个或多个小写字符
  • ,匹配逗号和空白
  • [A-Z]匹配大写字符
  • [a-z]*匹配零个或多个小写字符
  • \.匹配一个点

Demo Java