Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.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
Regex 数学表达式的正则表达式_Regex_Bash_Shell_Unix_Scripting - Fatal编程技术网

Regex 数学表达式的正则表达式

Regex 数学表达式的正则表达式,regex,bash,shell,unix,scripting,Regex,Bash,Shell,Unix,Scripting,我正在尝试对bash脚本中的用户输入运行比较/搜索。我希望用户能够在函数中键入,该函数是计算和返回。。。我怎样才能知道组在字符串中的位置,这样我就可以使事情井然有序 calculate 7 + 3 calculate 9.37 / 7.21 calculate 5 100 * 2.21 calculate 2783.34 – 25 calculate -g hypotenuse 2.34 5.1 #-g argument for geometric calculate -p 34.34

我正在尝试对bash脚本中的用户输入运行比较/搜索。我希望用户能够在函数中键入,该函数是计算和返回。。。我怎样才能知道组在字符串中的位置,这样我就可以使事情井然有序

calculate 7 + 3
calculate 9.37 / 7.21
calculate 5 100 * 2.21
calculate 2783.34 – 25  

calculate -g hypotenuse 2.34 5.1   #-g argument for geometric
calculate -p 34.34/343             #-p argument for precision

calculate -g hypotenuse -p 2.34 5.1   #geometric and precision
编辑:我想我指的是“代币”

例如:我知道的事情: ([-])([0-9])([.]*)([0-9]{1,})定义整数或实数

([0-9]{1,})定义整数


如何检索标记在字符串中的位置,以及如何检索运算符?

如上所述,您可以使用它执行算术运算。这可能是最好的解决方案,因为bash本身只能进行整数运算

Neverneless如果希望获得浮点数的整数和小数部分,可以使用以下代码:

a=123.456 # an example
a_int=${a%.*}
a_fr=${a#*.}
在您的示例中,每个“组”都表示为单个参数,即:

print_args() {
    for a in "$@"; do
        echo "arg=\"$a\""
    done
}
print_args 9.37 / 7.21
将打印

arg="9.37"
arg="/"
arg="7.21"

欢迎来到stackoverflow!不清楚你在问什么。你试过什么?你能在这里定义一下你所说的“团体”是什么意思吗?谢谢你欢迎我!也许你只是需要?+1来弄清楚OP可能想问什么。由于问题中提到了“几何”和“精度”,因此可能值得一提的是加载“mathlib”和
scale
变量!很抱歉给您带来了困惑-谢谢您的扩展!