这是C#代码行,尝试使用文本文件中的正则表达式在一行中找到匹配的字符串
MatchCollection collection = Regex.Matches(readedLine, @"/funcdesc=cls/ && /jobcat=VSO/");
countedChars = collection.Count;
这是样本文本文件的内容
2016-01-01 d;D;;D;funcdesc=cls&workcode=file&jobcat=VSO&jobcat=DSO;
2016-01-02 d;D;;D;funcdesc=cls&workcode=file&jobcat=DSO&jobcat=DSO;
预期总计数输出应为1
(因为第1行满足“ funcdesc = cls”和“ jobcat = VSO”都存在的要求,但是第2行不是因为没有“ jobcat = VSO”而仅找到了第一个字符串)。
由于“ funcdesc = cls”和“ jobcat = VSO”的顺序不固定(即,“ funcdesc”可以在“ jobcat”之后),因此您可以使用以下正则表达式捕获这两种情况下的匹配项。也许有更有效的方法可以做到这一点,这简直就是我的脑海:
/funcdesc=cls.+jobcat=VSO|jobcat=VSO.+funcdesc=cls/
这|
是在Regex中说“或”的一种方式,即,“ funcdesc = cls”后跟一个或多个(.+
)字符,后跟“ jobcat = VSO”,或“ jobcat = VSO”后跟一个或多个字符,后跟一个“ funcdesc = cls”。
这将匹配以下内容:
2016-01-01 d;D;;D;funcdesc=cls&workcode=file&jobcat=VSO&jobcat=DSO;
或者
2016-01-01 d;D;;D;jobcat=VSO&workcode=file&funcdesc=cls&jobcat=DSO;
但不匹配
2016-01-02 d;D;;D;funcdesc=cls&workcode=file&jobcat=DSO&jobcat=DSO;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句