gpt4 book ai didi

regex - 将一个变量中的字符串与另一个变量中的字符串精确匹配

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:03:28 24 4
gpt4 key购买 nike

我有一个句子,它只是一个由空格分隔的单词的字符串变量。

我有另一个包含单词的变量。我想要的是在包含句子的变量中找到单词的精确匹配。我试过这个:

read -p "enter the word to match " STR # STR contains VVDNSG 

#this DUP_SG_NAME_PUBLIC variable contains a string which consists of few words
DUP_SG_NAME_PUBLIC=$(aws ec2 describe-security-groups \
--query 'SecurityGroups[*].{GroupName:GroupName}' \
--output text)

if [[ $DUP_SG_NAME_PUBLIC =~ $STR ]]
then
echo "true"
else
echo "false"
fi

问题在这里,我提供了“VVDN”作为字符串,但我必须匹配“VVDNSG”,但此代码适用于两者。即使对于 VVDN 和 VVDNSG 也是可以理解的。

我想做什么
我想找到完全匹配,如果给定 VVDNSG 作为 STR 值,即使使用 VVDN,它也应该打印 true 或 false,我希望它与变量而不是文字字符串进行比较。

我尝试了几个例子,谷歌搜索了其中的大部分要么告诉你在文件中找到匹配项,要么告诉你对字符串比较进行硬编码。

最佳答案

您的 STR 用作正则表达式。因此,要将其用作精确匹配,请明确标记为 ^ 的开头和 $ 的结尾:

STR="^VVDN$"

然后 if 条件将仅在 DUP_SG_NAME_PUBLIC 中的 STR 完全匹配时为真。

更新:实际上,我认为你想要的有点不同——你有一个句子包含由空格分隔的单词(你没有提到终止符)并且你想要匹配其中一个单词,前提是它是完全匹配的。我们假设如果它在单词后有一个空格或者它在句子的末尾,它将是一个完全匹配。

在这种情况下,您的正则表达式可能是:

STR="VVDN($| )"

这是你的意思吗?

关于regex - 将一个变量中的字符串与另一个变量中的字符串精确匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51686277/

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