具有特殊字符的Java正则表达式

具有特殊字符的Java正则表达式,java,regex,Java,Regex,我有一个java的文本字符串[“1234”,“abd-df”],我需要用java编写一个正则表达式来捕获这两个元素 第一个元素=1234, 第二个元素=abd df 我使用下面的正则表达式 \\[\\"(.*?)\\",\\".*?\\"\\] 但是上面的代码不能正常工作,实际上这两个元素都可以是数字或字母,有人能告诉我正确的正则表达式字符串吗 谢谢这将分别与它们匹配: "[^"]*" 这将匹配逗号分隔的带引号的字符串,并

我有一个java的文本字符串[“1234”,“abd-df”],我需要用java编写一个正则表达式来捕获这两个元素

第一个元素=1234, 第二个元素=abd df

我使用下面的正则表达式

\\[\\"(.*?)\\",\\".*?\\"\\]
但是上面的代码不能正常工作,实际上这两个元素都可以是数字或字母,有人能告诉我正确的正则表达式字符串吗


谢谢

这将分别与它们匹配:

"[^"]*"
这将匹配逗号分隔的带引号的字符串,并捕获带引号的部分:

"([^"]*)","([^"]*)"

你的正则表达式非常接近

对它做了一些小改动,以显示我的工作

你的正则表达式:

\\[\\"(.*?)\\",\\".*?\\"\\]
轻微更改后:

\\[\"(.*?)\",\"(.*?)\"\\]
上下文中的正则表达式:

public static void main(String[] args) {
    String input = "[\"1234\",\"abd df\"]";

    Matcher matcher = Pattern.compile("\\[\"(.*?)\",\"(.*?)\"\\]").matcher(input);

    if(matcher.find()) {
        System.out.printf("Element 1: '%s'%n", matcher.group(1));
        System.out.printf("Element 2: '%s'%n", matcher.group(2));
    }
}
输出:

Element 1: '1234'
Element 2: 'abd df'