c#regex疯狂

时间:2012-08-31 19:11:23

标签: c# sql-server-2008

我在一个大字符串上进行RegEx匹配。那么,问题是我可以重复相同表达的次数有限制吗?在这种情况下,我再重复[+-]?((\d+(\.\d*)?)|\.\d+)([eE][+-]?[0-9]+)? 10次。它在2e-007点无法匹配。但是,如果您单独使用数字,表达式将匹配。这让我发疯,想知道有没有更简单的方法。您可以使用Regex

查看此信息

示例输入

  

持有“xxxxx”作为估值规格“RiskSettings1D”   创造了问题。鉴于市场价格将被忽略   由于校准误差,将使用历史波动率。   选项是欧洲的选择。给定期权价格是   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] < EM>价格   波动率为500   [+ - ]?((\ d +(。\ d )?)|。\ d +)([eE] [+ - ]?[0-9] +)?. [\ s] *模型没做不   按照给定的市场价格进行校准

1 个答案:

答案 0 :(得分:1)

我调整了你的正则表达式("[^"]" -> "[^"]+"和类似的,使所有的空间为零或多,这在你提供的空间中没有结果,并添加了输入的最后一部分似乎是缺少?)这与示例输入匹配。它在RegExr中不起作用,我不确定捕获组的数量是否有限制或类似的东西?相反,我使用了rubular.com,在这里查看确切的查询:http://rubular.com/r/OHr0UdI1lO

  

持有“[^”] +“用于评估规范”[^“] +”是用。创建的   问题。\ s *鉴于市场价格将被忽视和历史   由于校准错误,将使用波动率。\ s *选项是   一个)? [^。] +。\ 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] +)?。\ s *模型没有   校准到给定的市场价格   [+ - ]?((\ d +(。\ d +)?)|。\ d +)([eE] [+ - ]?[0-9] +)?。\ s *实际总数是   [+ - ]((\ d +(\ d +))|。?。\ d +)?(?[EE] [+ - ] [0-9] +)