ICU 正则表达式文本匹配可在 iOS 应用程序的工作流中工作

ICU Regex text match to work within Workflow for iOS app

第一次发帖,遇到了使用 ICU 正则表达式匹配文本的问题。我正在使用 iOS 应用程序的工作流程,并尝试使用 yahoo finance 创建股票工作流程,部分原因是我需要获取场外交易股票数据。

this URL,你得到:

{"query":{"count":1,"created":"2015-01-10T22:39:34Z","lang":"en-us","results":{"row":{"col0":"MINERCO RES INC","col1":"0.0072"}}}}

我正在创建的工作流程会要求输入公司名称并将其插入上面的 Url,所以我要做的是提取 col1:0.0072 重要的是要注意价格在这个例子中是 0.0072 可以而且会经常改变,最终我希望能够添加更多字段并提取相关数据(例如:col2:date)。

我有一个不使用 Regex 的解决方法,但在添加额外数据集时会使工作流程变得非常长。其他人发布了股票工作流程并使用了除雅虎以外的其他网站并简单地使用了 \{.*\} 但是该网站返回了报价中的股票但价格不在报价中而雅虎在报价中显示了股票和价格以及该代码不起作用。他使用的网站也不适用于场外交易股票

据我所知,该应用程序仅采用 Straight ICU Regex,因此无法真正完成其他语言的一半 Regex 示例。

我在这上面花了好几个小时,其中一半时间使用了不正确的语法,因为我最近才发现它需要 ICU Regex(NSRegularExpression 类型),而我尝试的一半示例都是错误的。

我正在修改的原始工作流程将其用作 URL:http://dev.markitondemand.com/Api/v2/Quote/jsonp?symbol=AAPL

结果输出为:

(function () { })({"Status":"SUCCESS","Name":"Apple Inc","Symbol":"AAPL","LastPrice":112.01,"Change":0.120000000000005,"ChangePercent":0.107248190186795,"Timestamp":"Fri Jan 9 15:59:00 UTC-05:00 2015","MSDate":42013.6659722222,"MarketCap":656920728400,"Volume":4934490,"ChangeYTD":110.38,"ChangePercentYTD":1.47671679652112,"High":113.25,"Low":110.22,"Open":112.71})

这就是他的 \{.*\} 与 "Match Text" 一起工作的代码,然后他使用了一个从输入中获取的字典,它可以解析来自 JSON 的集合(JSON此函数支持(如 {"foo": "bar"})和键值对(如 foo=bar&baz=biz)。

所以我只想要一个简短的代码,就像他使用的代码与我正在使用的当前解决方法相比,它需要为每个项目额外执行七个步骤,因此股票名称需要七个步骤,股票价格需要七个步骤....

我终于明白了。我需要的代码是:'col1+.*(\d)' 并且我需要添加两个重播文本,一个用于 '":"' 和 '=' 另一个替换 '","' 和 '$' 并且它有效并且可以通过分配扩展额外 "get value for key" 个。编辑:我在单引号内的代码没有正确显示,所以如果有人想复制和使用我的代码,请注意。