-1

大きな文字列で正規表現の一致を行っています。では、同じ表現を何回繰り返すことができるかについての質問はありますか? この場合、[+-]?((\d+(\.\d*)?)|\.\d+)([eE][+-]?[0-9]+)?さらに 10 回繰り返します。2e-007 の時点で一致しません。ただし、数値だけを取得すると式が一致する場合。これは私を夢中にさせており、もっと簡単な方法があるか知りたい. これは、正規表現を使用して確認できます

入力例

評価仕様 "RiskSettings1D" の保留 "xxxxx" が問題を抱えて作成されました。所与の市場価格は無視され、キャリブレーション エラーのために過去のボラティリティが使用されます。オプションは EUROPEAN PUT です。オプション価格が 2.000000000000001e-005、権利行使価格が 100、基本価格が 64.77914897148099、リスクフリー レートが 0.01329492130017084、キャリー コストが 0、満期までの年数が 0.005479452054794521 の場合。ボラティリティがゼロの価格は 35.2208253705315 です。ボラティリティ 500 の価格は 36.96626067864203 です。モデルは、2e-007 の特定の市場価格に合わせて調整されませんでした。実際の合計は 0.352208 です。

正規表現:

評価仕様 "[^"] " の保有 "[^"] " は問題を抱えて作成されました。[\s]*指定された市場価格は無視され、キャリブレーション エラーのため過去のボラティリティが使用されます。[\s]オプションは(ン)? [^.] .[\s]与えられたオプション価格は [+-]?((\d+(.\d )?)|.\d+)([eE][+-]?[0-9]+) ?, 権利行使価格は [+-]?((\d+(.\d*)?)|.\d+)([eE][+-]?[0-9]+)?, 基礎価格は [+ -]?((\d+(.\d*)?)|.\d+)([eE][+-]?[0-9]+)?、リスクフリーレートは[+-]?((\ d+(.\d*)?)|.\d+)([eE][+-]?[0-9]+)?、キャリーのコストは[+-]?((\d+(.\d* )?)|.\d+)([eE][+-]?[0-9]+)?, 有効期限までの年数は [+-]?((\d+(.\d*)?)|.\ d+)([eE][+-]?[0-9]+)?.[\s]ボラティリティがゼロの価格は [+-]?((\d+(.\d )?)|.\d+) ([eE][+-]?[0-9]+)?.[\s]ボラティリティ 500 の価格は [+-]?((\d+(.\d )?)|.\d+)([eE][+-]?[0-9]+)?.[\s]*モデルの所与の市場価格に調整されませんでした

4

1 に答える 1

1

私はあなたの正規表現を少し微調整しました("[^"]" -> "[^"]+"そして同様に、あなたが提供したものに帰結しなかったすべてのスペースをゼロまたは多数にし、欠落していると思われる入力の最後の部分を追加しましたか?)これは例と一致します入力。RegExr では機能しません。キャプチャ グループの数に何らかの制限があるかどうかはわかりません。代わりに rubular.com を使用しました。ここで正確なクエリを参照してください: http://rubular.com/r/OHr0UdI1lO

評価仕様 "[^"]+" のホールディング "[^"]+" は問題を抱えて作成されました。\s*指定された市場価格は無視され、キャリブレーション エラーのため過去のボラティリティが使用されます。\s*オプションは a( n)? [^.]+.\s*与えられたオプション価格は [+-]?((\d+(.\d+)?)|.\d+)([eE][+-]?[0-9]+) ?,\s*権利行使価格は [+-]?((\d+(.\d+)?)|.\d+)([eE][+-]?[0-9]+)?,\s*基礎となる価格は [+-]?((\d+(.\d+)?)|.\d+)([eE][+-]?[0-9]+)?,\s*リスク フリー レートは [ +-]?((\d+(.\d+)?)|.\d+)([eE][+-]?[0-9]+)?,\s*キャリーのコストは[+-]? ((\d+(.\d+)?)|.\d+)([eE][+-]?[0-9]+)?,\s*有効期限までの年数は[+-]?((\d+ (.\d+)?)|.\d+)([eE][+-]?[0-9]+)?.\s*ボラティリティゼロの価格は[+-]?((\d+(.\ d+)?)|.\d+)([eE][+-]?[0-9]+)?.\s*ボラティリティ 500 の価格は [+-]?((\d+(.\d+)? )|.\d+)([eE][+-]?[0-9]+)?.

于 2012-08-31T21:17:33.583 に答える