如何匹配由子串构成的字符串“CC”“LC”“SW”“RP”“WP”“DT”“LO”“CR”“RC”通过c#中的正则表达式构建的字符串。例如: 输入字符串是“D:(A ;; CCLCRPRC ;;; AU)(A ;; CCLCRPRC ;;; IU)(A ;; CCLCRPRC ;;; SU)(A ;; CCLCRPWPRC ;;; SY) (A ;; KA ;;; BA)S:(AU; FA; KA ;;; WD)(AU; OIIOFA; GA ;;; WD)“* 以及如何匹配子串* (A ;; CCLCRPRC ;;; AU)在其中。
感谢,问候
答案 0 :(得分:3)
你没有指定关于2个字符子串(As和分号)周围的文本的任何内容,所以为了灵活,这里有一个正则表达式,用于拉出括号括起来的所有字符串,从任何内容开始,以任何东西,并包含您指定的一个或多个子字符串:
var resultList = new List<string>();
Regex regexObj = new Regex(@"(\(.*?(CC|LC|SW|RP|WP|DT|LO|CR|RC)+.*?\))", RegexOptions.Multiline);
Match matchResult = regexObj.Match(subjectString);
while (matchResult.Success)
{
resultList.Add(matchResult.Value);
matchResult = matchResult.NextMatch();
}
在上面的示例中运行时,会提取以下内容:
(A;;CCLCRPRC;;;AU)
(A;;CCLCRPRC;;;IU)
(A;;CCLCRPRC;;;SU)
(A;;CCLCRPWPRC;;;SY)
答案 1 :(得分:2)
如果要匹配完全字符串,可以使用String.IndexOf
方法。
答案 2 :(得分:1)
或者您可以使用String.Contains方法来查找字符串是否是主字符串的一部分