如何应用正则表达式从动态字符串中获取数字



我有一个变量,它可以包含一些变体,它还包含一个可以是任何数字的数字。

变体:

($stuksprijs+9.075);
($stuksprijs-9.075);
($stuksprijs*9.075);
($m2+9.075);
($m2-9.075);
($m2*9.075);
($o+9.075);
($o-9.075);
($o*9.075);

这些是唯一的变化,除了其中的数字,它们可以改变。我需要那个号码。

所以可以有:

($m2+5);

($o+8.25);

($stuksprijs*3);

我怎样才能从这些变化中得到数字?如何用正则表达式从上面的例子中得到9.075或5或8.25或3?

我正试图用PHP解决这个问题,我的变量包含字符串:$explodeberekening[1]

我阅读了多个正则表达式教程,并使其适用于从未更改的单个字符串,但我如何编写正则表达式来从上述变体中获取数字?

根据我的评论,这似乎奏效了,你可以尝试:

^($(?:stuksprijs|m2|o)[+*-](d+(?:.d+)?));$

该号码在第一个捕获组中捕获。请参阅在线演示。

快速分解:

  • ^-启动字符串锚
  • CCD_ 3-字面匹配";($">
  • (?:-打开一个非捕获组以列出替换:
    • stuksprijs|m2|o-匹配这些文字替代项之一
    • )-关闭非捕获组
  • [+*-]-匹配字符类中的一个符号
  • (-打开第一个捕获组:
    • d+-1+位数字
    • (?:.d+)?-额外的可选非捕获组,用于匹配文字点和1个以上的数字
    • )-关闭第一个捕获组
  • );-字面匹配"(&">
  • $-端柱锚

最新更新