我正在努力学习如何正确使用正则表达式,但我不确定我哪里出错了 . 我正在尝试从forecast.io API中提取温度,最大温度,最小温度和图标 . 该图标似乎是导致问题的参数,因为当我删除它时,所有其他参数都能正常工作 . 对于图标,我想提取任何单词,包括破折号(即部分阴天,下雨,下雪,......) . API中参数的出现顺序与正则表达式中调用它们的方式相匹配 .
Problematic regex :
String re = ".*icon\":([\\-a-zA-Z]+),.*temperature\":([\\-0-9\\.]+),.*temperatureMin\":([\\-0-9\\.]+),.*temperatureMax\":([\\-0-9\\.]+),.*";
可以在此处看到示例预测字符串:https://api.forecast.io/forecast/e7588e2bd6966bc7f41614e2955c5978/37.8267,-122.423
我正在使用的字符串是进一步限制的,因此只显示每个属性的第一个实例(即在示例中有多个“icon”的情况,在我将使用的字符串中将只有一个实例 . )
谁能告诉我这个表达有什么问题?
2 回答
您忘了在图标上添加括号到正则表达式:
但我仍然建议使用Gson来解析Json:
使用波纹管正则表达式
这里
( . )表示0或1次出现 .
[0-9]表示一次或多次出现数字
[0-9] *表示出现0或更多位数