2017-09-01 5 views
0

特定のフレーズのリストに含まれていないフレーズを見つけるRegExを検索しようとしています。正規表現がリストにないフレーズを検索する

私はラベルのリストを持っており、私がRegExに提供するリストに他のラベルがないか調べたいと思います。例えば

label1: value 

label2: value 

label3: value 

newlabel: value 

私はラベル1-3があることが、唯一それがリストにないようnewlabelキャプチャするように指定できるようにしたいです。私は、私が期待しているラベルではなく、私が期待していないラベルの名前しか知りません。

何か助けていただければ幸いです。

あなたは

"\b(\w+):(?<!\b(?:label1|label2|label3):)" 

を使用することができ

Dim match As Match = regex.Match([anything containing a colon :] except label1|label2|label3) 
+1

あなたはどの言語を使用していますか、あなたが試みたことを分かち合うものがありますか? – sniperd

+2

私はあなたが探しているものが正確ではない。あなたは例文と肯定的および否定的な結果(出力と非出力の例)を投稿できますか?また、これまでに何を試しましたか? – ctwheels

+0

ありがとう、入力は私が質問に追加されたものです。出力は式の正規表現テストに合格します。 私はこれを始める方法がわからないので、私がすでに試したことの例はありません。私は.Net版を使用しています –

答えて

1

に似た何かがregex demoを参照してください。

詳細

  • \b - 単語境界
  • (\w+) - グループ1 - 一つ以上の単語の文字
  • :
  • - コロン
  • (?<!\b(?:label1|label2|label3):) - 一致した場合に失敗し、負の後読み現在の場所のすぐ左には、label1,label2またはがあります3210は全体の単語として(単語境界が先行しているため)、コロンが続きます。 VB.NETコードで

一致オブジェクトを含むMatchCollectionを取得し、各試合の.Groups(1).Valueを取得するRegex.Matchesを使用します。