得到字符串
Float值我有以下类型的字符串列表:得到字符串
27 km 56.1 km 45 KM 96.2km 87 k
而且我想对每一个数值。正如你可以看到它们中的一些是浮点值,并且后缀“km”有时错误输入。我在寻找的输出如下:在网络上
27 56.1 45 96.2 87
我发现正则表达式是字符串转换为数字,但他们没有考虑到某些值可以是浮动的,我怎么能写一个函数或找到满足我的要求的表达式?
$var = floatval($float);
是你在找什么。
对于这些字符串,可以使用/^\d+(\.\d+)?/
浮点正则表达式:?? [ - +] [0-9] * \ [0-9] +
只是parseFloat()
他们。 parseFloat()
将以数字开头的字符串转换为数字并停止使用第一个非数字字符。
parseFloat('96.2 km')
= 96.2
这是JavaScript。 – jeremyharris 2012-04-19 16:31:02
你说得对。 'floatval()'是php的等价物。一整天都在处理Javascript! – 2012-04-19 16:31:59
我经常做同样的事情:) – jeremyharris 2012-04-19 16:34:12
尝试。对我的作品
try {
Regex regexObj = new Regex(@"\b\d+(?:\.\d{0,}|)");
Match matchResults = regexObj.Match(subjectString);
while (matchResults.Success) {
// matched text: matchResults.Value
// match start: matchResults.Index
// match length: matchResults.Length
matchResults = matchResults.NextMatch();
}
} catch (ArgumentException ex) {
// Syntax error in the regular expression
}
PHP方式
preg_match_all('/\b\d+(?:\.\d{0,}|)/', $subject, $result, PREG_PATTERN_ORDER);
for ($i = 0; $i < count($result[0]); $i++) {
# Matched text = $result[0][$i];
}
你尝试过'floatval()'吗? – Blake 2012-04-19 16:29:22
事实上,我需要的,你应该发表你的评论作为答案 – 2012-04-19 16:43:11
你已经选择了答案。没什么大不了的,除非你打算改用我的。哈。 – Blake 2012-04-19 16:47:37