我们允许用户像这样自由输入文本框:
SomeText[Foo.Id]-[Bar.Value] (valid)
Xyz[Foo.Id]_[Bar.Value] (valid)
abc-[pqr] (invalid)
预定义值:
Foo.Id
Bar.Value
确保以下各项的最佳方法是什么:
我认为 Regex 将是进行此操作的正确方法。
一种灵活的方法是从 中提取文本[]
并根据您选择的白名单进行验证:
var validWords = new HashSet<string> {"[Foo.Id]", "[Bar.Value]"};
foreach (Match match in Regex.Matches("SomeText[Foo.Id]-[Bar.Value]-[Big.Mac]", @"(\[.*?\])")) {
foreach (Capture capture in match.Captures) {
if (!validWords.Contains(capture.Value)) {
Console.WriteLine($"{capture.Value} is not valid (Position {capture.Index})");
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句