php - 如果字符串中的单词后的术语是 float

标签 php

我有一个字符串:

$string = 'Hello world Vol. 3.5 ispum 99';

我想在 vol 项之后获取 float /整数值,所以我最终得到:

$value = '3.5';

到目前为止我尝试了什么

我能想到的唯一方法是 explode(' ', $string) 并检查 Vol. 之后的迭代是否为 float 。

是否有不同/更好的方法?

原因

我通过 RSS 提取了大量带有随机帖子标题的帖子。我的目标是确定每个帖子与哪个卷相关。术语 volume 在每个帖子中都不同,因此我们可以有:Vol.volumeepisode

最佳答案

您可以为此使用正则表达式:

$string = 'Hello world Vol. 3.5 ispum 99';
if (preg_match('/(Vol\.|volume|episode)\s*(\d+(\.\d+)?)/i', $string, $matches))
    var_dump($matches[2]);
  • (Vol\.|volume|episode) 匹配任何给定的单词
  • \s* 吃掉任意数量的空格
  • (\d+(\.\d+)?) 匹配整数或浮点值

或者更一般地说:

$terms = ['vol.', 'volume', 'episode'];
$terms_quoted = [];
foreach ($terms as $term)
    $terms_quoted[] = preg_quote($term, '/');

$string = 'Hello world Vol. 3.5 ispum 99';
if (preg_match('/('.implode('|', $terms_quoted).')\s*(\d+(\.\d+)?)/i', $string, $matches))
    var_dump($matches[2]);

关于php - 如果字符串中的单词后的术语是 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51357144/

相关文章:

php - 选择数据库的最高ID并在PHP中使用结果

javascript - 使用 Jquery cookie 存储 div 的切换状态?

javascript - Laravel 4 无法从 Angular Ajax 获取数据

javascript - 根据链接 url 禁用悬停在图像上

javascript - 使用 AJAX 时阻止跨域请求

php - 拖放图像上传在服务器上不起作用

php - 存储每个 Assets 的自定义参数的最佳方式

php - XML 数据更新时只读

php - 在网站上列出电话号码以进行点击通话的最佳方式

php - Symfony Knp 菜单包 : set active a menu item even when its not on that menu