提问人:ukjar 提问时间:4/29/2022 最后编辑:M. Justinukjar 更新时间:11/15/2023 访问量:44
用常规术语写一个反向引用,以确定两个数字的相等性
Write a back reference in regular terms to determine the equality of two numbers
问:
请说明如何在正则表达式中写入反向引用以确定两个数字的相等性。
例如,输入24和24的人出现在屏幕上“OK”,相反,当输入24和23的人收到“不好”?
我尝试了以下方法:
#!/bin/bash
read a
read b
if <("$a" == "$b")>.*<\1>
then
echo ok
else
echo not ok
fi
答:
0赞
JRichardsz
4/29/2022
#1
您只需要直接进行变量比较:
#!/bin/bash
read a
read b
if [ "$a" -eq "$b" ];
then
echo ok
else
echo not ok
fi
反向引用适用于复杂的要求,如下所示:
https://javascript.info/regexp-backreferences
此外,正则表达式不用于比较不同的值。它用于将传入值与预定义的、预期的或期望的模式进行比较,如本示例所示,其中预期模式是邮件,传入值可以是任何字符串
if [[ "$1" =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ ]]
then
echo "Email address $email is valid."
else
echo "Email address $email is invalid."
fi
评论
if [ "$a" -eq "$b" ]
-- 这是基本的 shell 语法。if