繁体   English   中英

如何使用Java中的正则表达式从带引号的字符串中提取文本?

[英]How to extract text from quoted string with regex in java?

我有一个像这样的字符串:

"0008934","1801 W NORMATOWN ROAD","ROMEOVILLE","IL","US","60446","8158866981","Y"

我想提取双引号内的所有值。 您能帮我完成任务吗?

这是我所期望的:

0008934
1801 W NORMATOWN ROAD
ROMEOVILLE
IL
US
60446
8158866981
Y

有人可以帮我吗?

您可以这样:

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class RegexTest {

    public static void main(String[] args) {
        String strInput = "\"0008934\",\"1801 W NORMATOWN ROAD\",\"ROMEOVILLE\",\"IL\",\"US\",\"60446\",\"8158866981\",\"Y\"";
        Pattern pattern = Pattern.compile("\"([^\"]*)\"");
        Matcher matcher = pattern.matcher(strInput);
        while (matcher.find()) {
            System.out.println(matcher.group(1));
        }
    }
}

输出:

0008934
1801 W NORMATOWN ROAD
ROMEOVILLE
IL
US
60446
8158866981
Y

您可能还需要考虑OpenCSV ,这是一个仅由几个Java类组成的轻巧简单的开源库。 由于您输入的是CSV,因此OpenCSV可以为您完成此操作。

使用带开头和结尾的引号,然后在","上分开

String[] parts = input.replaceAll("(^\")|(\"$)", "").split("\",\"");

一旦遇到问题并尝试使用正则表达式解决它,就会遇到两个问题。
考虑一下:

String[] list = input.split(",");  
foreach (String str : list){  
    str.replaceAll("\"","");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM