gpt4 book ai didi

regex - Bash 字符串比较/前导零

转载 作者:行者123 更新时间:2023-11-29 09:44:10 32 4
gpt4 key购买 nike

只是想知道在 bash 脚本中是否有一种简单的方法可以使用“测试”结构来比较匹配给定模式的两个字符串。在这种特殊情况下,我希望一对数字字符串匹配,如果它们中的任何一个前面有前导零。谢谢。

#!/bin/bash

STR1=123
STR2=00123

if [[ "0*${STR1}" == "0*${STR2}" ]]; then
echo "Strings are equal"
else
echo "Strings are NOT equal"
fi

exit 0

最佳答案

从字符串中去除所有前导零,然后检查结果是否相等。此解决方案需要 bash 的扩展模式支持。

shopt -s extglob
if [[ "${STR1##*(0)}" = "${STR2##*(0)}" ]]; then
echo "Strings are equal"
fi

您还可以使用 bash 的内置正则表达式支持,但如果您不知道哪个字符串有更多前导 0,则可能需要进行两次比较。当左侧字符串的前导 0 至少与右侧字符串一样多时,测试有效。

if [[ $STR1 =~ 0*$STR2 || $STR2 =~ 0*$STR1 ]]; then
echo "Strings are equal"

关于regex - Bash 字符串比较/前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19170347/

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