1

私はこの文字列を持っています

<div style='text-align:center;padding-top:6px;'>Displaying Result 1 - 10 of 10 Matching Services</div>

「の」の後に数字の「10」が必要です

私の正規表現は今です

if [[ "$WARNING" =~ "of.([0-9]*)" ]]
then
        echo "OK: $WARNING"
else
    echo "NOK: $WARNING"
fi

誰でも私を助けてくれますか?

4

3 に答える 3

2
  1. の右側を引用する必要はありません=~
  2. 変数を使用してBASH_REMATCH、目的の値を取得できます。

試す:

if [[ "$WARNING" =~ of.([0-9]*) ]]
then
    echo "OK: $WARNING"
else
    echo "NOK: $WARNING"
fi

echo "${BASH_REMATCH[1]}"

マニュアルから:

BASH_REMATCH

メンバーが=~二項演算子によって[[条件付きコマンドに割り当てられる配列変数 (条件付きコンストラクトを参照)。インデックス 0 の要素は、正規表現全体に一致する文字列の部分です。インデックス n の要素は、n 番目の括弧で囲まれた部分式に一致する文字列の部分です。この変数は読み取り専用です。

于 2013-10-08T11:58:42.227 に答える
0

正規表現は必要ありません。bash の組み込みパラメーター展開を使用するだけです。

$ x="<div style='text-align:center;padding-top:6px;'>Displaying Result 1 - 10 of 10 Matching Services</div>"
$ x="${x##*of }"
$ echo "${x%% *}"
10
于 2013-10-08T12:53:42.270 に答える