簡體   English   中英

如何應用正則表達式從動態字符串中獲取數字

[英]How to apply regular expressions to get a number from a dynamic string

我有一個可以包含一些變化的變量,它還包含一個可以是任何數字的數字。

變化:

($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+)?)\);$

該號碼在第一個捕獲組中捕獲。 請參閱在線演示

快速細分:

  • ^ - 開始字符串錨。
  • \(\$ - 字面上匹配“($”。
  • (?: - 打開一個非捕獲組以列出交替:
    • stuksprijs|m2|o - 匹配這些文字替代品之一。
    • ) - 關閉非捕獲組。
  • [+*-] - 匹配字符類中的符號之一。
  • ( - 打開第一個捕獲組:
    • \d+ - 1+ 位。
    • (?:\.\d+)? - 額外的可選非捕獲組以匹配文字點和 1+ 數字。
    • ) - 關閉第一個捕獲組。
  • \); - 字面上匹配“);”。
  • $ - 結束字符串錨。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM