0

初めて投稿し、ICU Regex を使用したテキストの一致に問題があります。私は iOS アプリのワークフローを使用しており、OTC 株式データを取得する必要があるため、部分的に yahoo ファイナンスを使用して株式のワークフローを作成しようとしています。

この 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)。

正規表現を使用しない回避策がありますが、追加のデータ セットを追加するとワークフローが非常に長くなります。他の誰かが株式ワークフローを投稿し、yahoo 以外の別のサイトを使用して単純に使用\{.*\}しましたが、そのサイトは株式を引用符で返しましたが、価格は引用符で示されませんでしたが、yahoo は株式と価格の両方を引用符で示し、そのコードは機能しません。また、彼が使用したサイトはOTC株では機能しません

このアプリは、私の知る限り、Straight ICU 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) がサポートされています)。

だから私は彼が使用したもののような短いコードと私が使用している現在の回避策のような短いコードが欲しかった.

4

1 に答える 1

1

私はついにそれを理解しました。必要なコードは「col1+.*(\d)」で、2 つのリプレイ テキストを追加する必要がありました。追加の「キーの値を取得」を割り当てることで拡張可能です。編集:単一引用符内の私のコードが正しく表示されないため、誰かが私のコードをコピーして使用したい場合は注意してください。

于 2015-01-19T16:20:00.413 に答える