Java 使用正则表达式从字符串获取envelopeID
我有以下条件:Java 使用正则表达式从字符串获取envelopeID,java,regex,Java,Regex,我有以下条件: "envelopeId": "fsadjhfkhdsgf", "ashgjkadsagagsalkjghsag": "gsajgks", "envelopeId": "fsadjhfkhdsgfgsd", "afshdj":"gas" 我需要从中提取出所有的信封ID。我尝试了不同的regex,但似乎没有任何效果 (?:“信封ID”)*(,) (?:“信封ID:”)*[\d\d](“,) 我正在尝试的正则表达式有什么问题?您可以使用 "envelopeId":\s*"([^"]+
"envelopeId": "fsadjhfkhdsgf", "ashgjkadsagagsalkjghsag": "gsajgks", "envelopeId": "fsadjhfkhdsgfgsd", "afshdj":"gas"
我需要从中提取出所有的信封ID
。我尝试了不同的regex
,但似乎没有任何效果
(?:“信封ID”)*(,)
(?:“信封ID:”)*[\d\d](“,)
我正在尝试的正则表达式有什么问题?您可以使用
"envelopeId":\s*"([^"]+)"
并提取matcher.group(1)
值。看
详细信息
“信封ID”:
-文字字符串
\s*
-0+空格
“
-a”
字符
([^“]+)
-第1组:除“
“
-一个”
字符
:
输出:
fsadjhfkhdsgf
fsadjhfkhdsgfgsd
您可以使用下面的代码从行字符串中提取envelopeId
s。无论如何,不建议从json文本中提取json文本值。而不是使用json库来解析文本并通过键提取值
String line = "\"envelopeId\": \"fsadjhfkhdsgf\", \"ashgjkadsagagsalkjghsag\": \"gsajgks\", \"envelopeId\": \"fsadjhfkhdsgfgsd\", \"afshdj\":\"gas\"";
String pattern = "(?<=\"envelopeId\"\\: \")\\w+";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(line);
while (m.find()) {
System.out.println(m.group(0));
}
字符串行=“\'envelopeId\”:\'fsadjhfkhdsgf\”,\'ashgjkadsagagsalkjghsag\”:\'gsajgks\”,“envelopeId\”:'fsadjhfkhdsgfgsd\”,'afshdj\:'gas\”;
String pattern=“(?使用”\“信封ID\”:\\s*\”([^\“]+)\”
字符串文字作为模式。抓取匹配器。组(1)
对您有效吗?是的。有效。谢谢
String line = "\"envelopeId\": \"fsadjhfkhdsgf\", \"ashgjkadsagagsalkjghsag\": \"gsajgks\", \"envelopeId\": \"fsadjhfkhdsgfgsd\", \"afshdj\":\"gas\"";
String pattern = "(?<=\"envelopeId\"\\: \")\\w+";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(line);
while (m.find()) {
System.out.println(m.group(0));
}