![](/img/trans.png)
[英]Jmeter - regex in beanshell (matcher()/pattern() ) is cutting national characters
[英]Beanshell Pattern Matcher Regex
我有以下 JSON:
[
{
"": "",
"substituted_restday": "2020-02-01",
"original_restday": "2020-02-08",
"id": "15d13f70-c0a852c0-3a925f13-6dca1982",
"_UNIQUEKEY_": "15d1592a-c0a852c0-3a925f13b7c65023",
"parentId": ""
},
{
"": "",
"substituted_restday": "2020-02-03",
"original_restday": "2020-02-09",
"id": "15d14d55-c0a852c0-3a925f13-727b70af",
"_UNIQUEKEY_": "15d1592a-c0a852c0-3a925f13-3711a584",
"parentId": ""
}
]
我想從“替換休息日”中提取“日期”,即 2020-02-01 和 2020-02-03。
我有以下代碼,但結果不好:
Pattern pattern = Pattern.compile("((\"substituted_restday\":\")[0-9-]+)");
Matcher matcher = pattern.matcher(JSON);
System.out.println(matcher.find());
if (matcher.find()){
System.out.println(matcher.group(0));
System.out.println(matcher);
System.out.println("group count:" + matcher.groupCount());
for (int i = 0; i <= matcher.groupCount(); i++) {
System.out.println(i + ":" + matcher.group(i));
}
}
我可以看到“matcher.find()”是真的。 但是 matcher.group 沒有價值。 請幫忙。
您必須遍歷匹配的模式,然后訪問group(1)
:
public static void main(String[] args) {
Pattern pattern = Pattern.compile("\"substituted_restday\": \"([0-9-]+)\"");
Matcher matcher = pattern.matcher(JSON);
while(matcher.find()){
System.out.println(matcher.group(1));
}
}
輸出將是:
2020-02-01
2020-02-03
如果您訪問group(0)
則輸出為:
"substituted_restday": "2020-02-01"
"substituted_restday": "2020-02-03"
組由括號標識
group(0)
:(("\\"substituted_restday\\": \\"([0-9-]+)\\"")
group(1)
:([0-9-]+)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.