我在 java ["1234","abd df"] 中有一个文本字符串,我需要用 Java 编写一个正则表达式来捕获这两个元素
第一个元素=1234, 第二个元素=abd df
我正在使用以下正则表达式
\\[\\"(.*?)\\",\\".*?\\"\\]
但是上面不能正常工作,实际上两个元素都可以是数字或字母,有人可以指导我使用正确的正则表达式字符串吗?
谢谢
答案 0 :(得分:0)
这将分别匹配它们:
"[^"]*"
这将匹配逗号分隔的带引号的字符串并捕获带引号的部分:
"([^"]*)","([^"]*)"
答案 1 :(得分:0)
您的正则表达式非常接近。
对其进行了小改动以表明我有效。
您的正则表达式:
\\[\\"(.*?)\\",\\".*?\\"\\]
小改动后:
\\[\"(.*?)\",\"(.*?)\"\\]
上下文中的正则表达式:
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'