-3

指定された入力文字列が有効な 16 進値であるかどうかを検証する方法、またはシェル スクリプトで正規表現を使用していない

例えば:

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
4

1 に答える 1

4
^([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 
$
于 2013-06-07T10:40:36.570 に答える