2016-07-20 8 views
2

Regexを使用して、指定されたテキストと正確な単語を一致させる必要があります。続きCの正規表現を使って単語の完全一致を取得する

は私がtext.Issueから正確な(ないVOAまたはVO >>から)「VO」を取得しようとしています。ここ

var matchterm = "VO"; 
var pattern = "\\b(" + matchterm + ")\\b"; 
var text = "FOR OVER FIFTY YEARS WATER FUTURE VOA VO>> VO"; 
var regx = new Regex(pattern,RegexOptions.IgnoreCase); 
var collection = regx.Matches(text); 

、コードで正しい一致と一緒にされ、私も取得しています"VO"からの "VO"は私が望みません。助けてください。

あなたが正規表現 (?<!\S)(VO)(?!\S)使用することができます
+0

の終わりが続いていることを確認します

string pattern = String.Format("(?<!\\S){0}(?!\\S)", matchterm); 

を'' var res = text.Split()。ここで(p => String.Compare(p、matchterm、StringComparison.OrdinalIgnoreCase)== 0).ToList(); '](https://ideone.com/XzU01c)あなたに必要な 'VO'を与えてください。しかし、それは何のために必要ですか? –

+0

提案していただきありがとうございますが、上記の正規表現コードは、後続のプロセスで一致位置を使用するワークフローの一部です。 –

答えて

6

:それはmatchtermは、[任意の空白文字や線の開始に先行して、任意の空白文字や線

+0

\ sは空白だけでなく、他の空白文字にも一致しますので注意してください。 – AFract

+1

何も追加しないでクラスを削除することができます – Sehnsucht

+0

はい正規表現が無駄に複雑になります。読みやすいものに簡単に書き換えることができます。 – AFract

関連する問題