0
は、私は次の正規表現正規表現はmulit値taxononomyフィールド内のすべてのラベル
\b(?!^;#)\w+\s*\w+\|\b
と、このサンプル文字列を持って見つけます。
私は後に来るラベルと一致する必要が-1;#Class Study|0b4dac95-9e17-4af9-b849-6d283a99b561;#-1;#Matrix|dda77641-7b25-40f9-bb65-a0bca13776d3";
;#
string multipleFieldValue = "-1;#Class Study|0b4dac95-9e17-4af9-b849-6d283a99b561;#-1;#Matrix|dda77641-7b25-40f9-bb65-a0bca13776d3";
var regex = new Regex(@"\b(?!^;#)\w+\s*\w+\|\b");
string[] labels = multipleFieldValue.Split(new[] { ";#" },StringSplitOptions.None);
var matches = regex.Matches(multipleFieldValue);
Assert.AreEqual(2, matches.Count);
は、現在、このラベルを返すだけでなく、返します| 私は|同様
先読みで
|
と単語の境界をラップ '(^;?!#)' 'とき(否定的な方法で)一致しません\ w'はそれの後に来ます。 – sln'(?<=;#)[^ |] *(?= \ | $)' – sln
'(?!^;#)'については、 ';' '# 'も単語' \ w'なので、次の文字が '\ w'のときは(否定的な形で)マッチしません。したがって、基本的には使用されていません。 – sln