正規表現は、終了文字として「〜」「=」を含む文字列を検証し、します

カム・カム:

Javaでは、私は正規表現を使用して最後に「=」「〜」と含む文字列を検証する必要があります。

例えば:

LOCKER=2004-02-23-23.28.22.377655~UCC=0103207031~URY=31/12/9999~URF=23/02/2004~URT=SEREST ISSY LES MO      ~URFC=XX~URFNUMCB=XXXXXXXXXXX~CEB=XXXXX~CEBC=XXXXX~URFN=0001

この文字列の形式は、KEY1 = VALUE〜KEY2 = VALUE〜KEYN = VALUE大文字

「〜」セパレータとしてあります

現在、私はいくつかの定期的なexpresionが、私は喜ばそれらのすべて偽缶誰の助けを使用していますか?高度をありがとうございました

アンドレアス:

次の正規表現は、実行する必要があります。

^(?!~)(?:(?:^|~)[^=~]+=[^=~]*)+$

説明

^            Match beginning-of-input, i.e. matching must start at beginning
(?!~)        Input cannot start with `~`
(?:          Repeat 1 or more times:
  (?:^|~)      Match beginning of input or match '~', i.e. match nothing on
               first repetition, and match `~` on each subsequent repetition
  [^=~]+       Match KEY
  =            Match '='
  [^=~]*       Match VALUE (may be blank)
)+
$           Match end-of-input, i.e. matching must cover all input

変更キーと値のための文字クラスは、彼らがさらに制限、例えば、使用している場合、必要に応じて[A-Z][A-Z0-9]*代わりのを[^=~]+KEYが大文字のみの識別子である必要があります。

Javaのを使用している場合はmatches()正規表現で、最初^とエンディングは$冗長です。第二は^、まだ必要です。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=279664&siteId=1