【问题标题】:Shell script to validate hex value用于验证十六进制值的 Shell 脚本
【发布时间】:2013-06-07 10:27:08
【问题描述】:

如何在 shell 脚本中使用正则表达式验证给定的输入字符串是否为有效的十六进制值

例如:

Input var="ff:ff:fe:ff"

有一个: 分隔符值

我想将此正则表达式用于任何输入字符串

var = "ff:ff:fe:ff:fe"
var = "ff:ff:fe:ff:fe:fe:ff:ff"
\b0[xX][0-9a-fA-F]+\b



#!/bin/bash -x
var="fe:fe:fe:fe"
regex="/^([0-9A-F]+:?){4}$/"
if [[ $var =~ $regex ]]; then
echo "valid"
fi

【问题讨论】:

  • -1。你试过什么?这是哪种 shell 脚本语言(它是 不是 bash)?
  • \b0[xX][0-9a-fA-F]+\b 我尝试了什么
  • 您的问题仍不清楚。阅读有关如何改进它的常见问题解答。

标签: regex bash shell


【解决方案1】:
^([0-9A-Fa-f]{2})(:[0-9A-Fa-f]{2})*$

测试

$ if [[ "ff:af:ff:23:a2:ad" =~ ^([0-9A-Fa-f]{2})(:[0-9A-Fa-f]{2})*$ ]]; then 
   echo "match"; 
  fi 
$ match

$ if [[ "definitlynottherightformat" =~ ^([0-9A-Fa-f]{2})(:[0-9A-Fa-f]{2})*$ ]]; then 
   echo "match"; 
  fi 
$

【讨论】:

  • 您可以使用[[:xdigit:]] 代替[[0-9A-F-a-f]]
猜你喜欢
  • 2012-10-28
  • 1970-01-01
  • 1970-01-01
  • 2018-09-07
  • 2010-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-23
相关资源
最近更新 更多