我在一个大字符串上进行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] *模型没做不 按照给定的市场价格进行校准
答案 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] +)