使用C#将模式与REGEX匹配

时间:2017-09-19 15:30:46

标签: c# regex

我需要一个例子的帮助

我需要构建一个与以下内容匹配的模式:

  • 示例1 = (and 'value1' 'value2' 'value3') - >我需要列表中的value1value2value3

  • 示例2 = (and field1:'value1' field2:'value2' field3:'value3') - >在这种情况下,应省略值 - >列表应为空

  • 示例3 = (and((and field1:'value1' field2:'value2' 'value3')(and 'value100' value101)) - >列表应包含value3value100

作为sumarize,我需要所有符合\'。+ \'但不是数学。+:\'。+ \'

  • 'value' - >值应匹配
  • field:'value' - >值应省略

值和字段可以是任何

4 个答案:

答案 0 :(得分:0)

非常抽象的任务。对于这个例子,我可以提供这个问题: " \ S \'值[0-9] + \'"

答案 1 :(得分:0)

我认为你想像这样使用负面的背后隐藏:

Array.from(document.querySelectorAll('tr[id*=";"]')).forEach(tr => { tr.remove() })

答案 2 :(得分:0)

尝试直接模式

(?<!:)'(?<value>\w+)'

,其中

'(?<value>\w+)' - alphanumeric letters within apostrophes
(?<!:)          - but NOT before ":"  

由于我们不希望 \w+匹配

,因此我提出了.+而不是建议' field2:'

这样的事情:

string source = 
  @"(and((and field1:'value1' field2:'value2' 'value3')(and 'value100' value101))";

string pattern = @"(?<!:)'(?<value>\w+)'";

List<string> items = Regex
  .Matches(source, pattern)
  .OfType<Match>()
  .Select(match => match.Groups["value"].Value)
  .ToList();

测试:

Console.WriteLine(string.Join("; ", items));

结果:

value3; value100

答案 3 :(得分:-1)

这是一个很棒的工具,可以让你使用遗传算法生成正则表达式。

您为它提供了样本数据集,它将生成满足数据集的正则表达式。数据集中的数据越多(边缘情况等),最终正则表达式就越准确。

http://regex.inginf.units.it/

如果你想自己编写正则表达式,你需要去学习正则表达式。这里有大量的资源用于此。