下面是我的字符串。
{" 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
答案 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));
}