如何匹配这个字符串patteren?

时间:2018-02-26 13:25:49

标签: java regex

下面是我的字符串。

{" 3/4", "ERW", "A53-A", "STEEL", "PIPE", "STD", "BLK", "PE"} 

我需要使用正则表达式匹配此字符串,请帮助我实现此目的。

我尝试了下面的代码片段来实现这一点,但它是部分匹配的(我只能匹配6个字符串)。

String pattern = "\\s*,\\s*";
String[] sourceValues= listTwo.get(1).toString().split(pattern);

我无法使用此模式匹配第一个和最后一个字符串。

请帮助我实现这一点,我需要匹配所有8个字符串。

谢谢, Sandesh P

1 个答案:

答案 0 :(得分:1)

您可以尝试:

" ?([^"]+)"

这将捕获组1中双引号(没有前导单个空格)之间的内容。现在您有8个字符串而不是6个字符串。

List<String> allMatches = new ArrayList<String>();
Matcher m = Pattern.compile("\" ?([^\"]+)\"").matcher("{\" 3/4\", \"ERW\", \"A53-A\", \"STEEL\", \"PIPE\", \"STD\", \"BLK\", \"PE\"}");
while (m.find()) {
    allMatches.add(m.group(1));
}

Java output test