Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正则表达式从字符串获取浮点值_Php_Regex - Fatal编程技术网

Php 正则表达式从字符串获取浮点值

Php 正则表达式从字符串获取浮点值,php,regex,Php,Regex,嘿,我有一个基本上跟踪财务的系统。在这个应用程序中,它有一个“cost”字段(不幸的是它是VARCHAR字段)。此字段输入了各种值,如: £90 £210 per day £50 per logo Design - £180 £36 p/h £1009.51 有没有办法把这些转换成浮点数?我试着使用(float)将类型变为一个float,但它不起作用 /(\d+[.]?\d*)/ 编辑 编辑的如果它总是跟在一个字符后面,您甚至可以确保其他数字不匹配: £\s*\d+(?:\.\d+)? 解

嘿,我有一个基本上跟踪财务的系统。在这个应用程序中,它有一个“cost”字段(不幸的是它是VARCHAR字段)。此字段输入了各种值,如:

£90
£210 per day
£50 per logo
Design - £180
£36 p/h
£1009.51
有没有办法把这些转换成浮点数?我试着使用(float)将类型变为一个float,但它不起作用

/(\d+[.]?\d*)/
编辑


编辑的

如果它总是跟在一个
字符后面,您甚至可以确保其他数字不匹配:

£\s*\d+(?:\.\d+)?
解释

£          # GBP
\s*        # spaces, optional
\d+        # digits, required (at least one)
(?:        # non-capturing group 
  \.\d+    #   a literal dot, and more digits
)?         # end group, make optional

如果它总是跟在
字符后面,您甚至可以确保其他数字不匹配:

£\s*\d+(?:\.\d+)?
解释

£          # GBP
\s*        # spaces, optional
\d+        # digits, required (at least one)
(?:        # non-capturing group 
  \.\d+    #   a literal dot, and more digits
)?         # end group, make optional

无需在字符类内转义
[.]?
\.?
就足够了。无需在字符类中转义
<代码>[.]?和
\.?
就足够了。