0

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

从此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)。

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

据我所知,该应用程序仅采用 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})

这就是他的代码:使用“匹配文本”,然后他使用从输入中获取字典,该字典可以解析来自 JSON 的集合(此函数支持\{.*\}JSON(类似{"foo": "bar"})和键值对(类似))。foo=bar&baz=biz

所以我只想要一个简短的代码,比如他使用的代码,而不是我正在使用的当前解决方法,每个项目需要额外的七个步骤,所以股票名称有七个步骤,股票价格有七个步骤......

4

1 回答 1

1

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

于 2015-01-19T16:20:00.413 回答