PHP 提取以句点分隔的文本

发布于 2024-12-17 07:31:56 字数 263 浏览 0 评论 0原文

我的文本格式如下:

123232.23

43438282.00

我想提取它们并将其存储到两个变量 $dollar 和 $cent 中。

第一个文本的预期结果如下:

$dollar = '123232'

$cent = '23'

如何使用正则表达式实现该目标 在 PHP 中。

I have texts in the format:

123232.23

43438282.00

I want to extract and store them into two variables $dollar and $cent.

Desired result will be as follows for the first text:

$dollar = '123232'

$cent = '23'

How can I achieve that using regex in PHP.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

枫林﹌晚霞¤ 2024-12-24 07:31:56

为什么不直接使用 explode列表

list($dollar, $cent) = explode('.', $text);

why not just use explode with list

list($dollar, $cent) = explode('.', $text);
§普罗旺斯的薰衣草 2024-12-24 07:31:56

这是其正则表达式:

$regex = '~^(?P<dollar>\d+)\.(?P<cent>\d+)$~';

if (preg_match($regex, $number, $matches)) {
  //$matches['dollar']
  //$matches['cent']
}

Here is the regular expression for this:

$regex = '~^(?P<dollar>\d+)\.(?P<cent>\d+)$~';

if (preg_match($regex, $number, $matches)) {
  //$matches['dollar']
  //$matches['cent']
}
澉约 2024-12-24 07:31:56

如果您只有单个字符串,则可以使用简单的爆炸函数,但如果文本文件中有多个图形并且您想要提取它们,则可以执行如下操作。

对于第一个分隔符,我使用了换行符“\n”。您可以将其更改为适合您的内容。

$s = <<<ABC
123232.23
43438282.00
3333.66
ABC;

$arr = explode("\n", $s);
print_r($arr);
$exarr = array();
foreach($arr as $arv){
    $exarr[] = explode(".", $arv);
}

print_r($exarr);

这将解析每个数字并输出类似于以下内容的内容:

Array
(
    [0] => 123232.23
    [1] => 43438282.00 
    [2] => 3333.66
)
Array
(
    [0] => Array
        (
            [0] => 123232
            [1] => 23
        )

    [1] => Array
        (
            [0] => 43438282
            [1] => 00 
        )

    [2] => Array
        (
            [0] => 3333
            [1] => 66
        )

)

You can use a simple explode function for it if you have only single individual strings, but if you have multiple figures in a text file and you want to extract them, you do something like this below.

For the first delimiter I used a newline character `\n. You can change it to what fits you.

$s = <<<ABC
123232.23
43438282.00
3333.66
ABC;

$arr = explode("\n", $s);
print_r($arr);
$exarr = array();
foreach($arr as $arv){
    $exarr[] = explode(".", $arv);
}

print_r($exarr);

This would parse each or the figures and output something similar to this below :

Array
(
    [0] => 123232.23
    [1] => 43438282.00 
    [2] => 3333.66
)
Array
(
    [0] => Array
        (
            [0] => 123232
            [1] => 23
        )

    [1] => Array
        (
            [0] => 43438282
            [1] => 00 
        )

    [2] => Array
        (
            [0] => 3333
            [1] => 66
        )

)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文