gpt4 book ai didi

linux - 我应该如何找到几个可能字符的索引?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:39:05 26 4
gpt4 key购买 nike

我意识到问题名称并不能说明什么,但我真的不知道如何简短地解释它,所以这里是长版。

首先,这是我当前的代码:

#! /usr/bin/perl

use strict;
use warnings;

my $input;
while (<>) {
$input .= $_;
}
$input =~ s/ |\n//g;

print "\n";

我想做的是做一个计算器,例如当用户 echo "8 * 5 + 21-15"|计算 它将正确计算。所以这是我的思想进步。首先,我将字符串作为一个整体并去除所有空白字符。然后我想对 *、+、/或 - 的出现进行索引()。然后我想将任何这些运算符之前的所有字符添加到一个字符串,然后 (int) 字符串,然后对运算符之后的部分执行相同的操作,然后在它们之间执行操作。但我实际上并没有太多关于如何做到这一点的线索。另外,我是 Perl 的新手(3 天经验)所以如果可能的话请慢慢来。

非常感谢。

最佳答案

如果您可以接受您的计算器将无法处理括号,请使用正则表达式为您解析字符串:

#!/usr/bin/env perl
use strict;
use warnings;

my @tokens = <STDIN> =~ /(\d+|\+|-|\*|\/)/g;
print "$_\n" for @tokens;

这将为您提供一组您可以使用的 token ,所以

echo "8 * 5 + 21-15" | script.pl

将打印

8
*
5
+
21
-
15

现在您需要编写一些代码来对 token 进行正确的计算。如果您不尝试解析括号并不太难,但如果您这样做,您将需要编写一个递归解析器,这要困难得多。

关于linux - 我应该如何找到几个可能字符的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10230294/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com