如何在C#中通过正则表达式匹配由给定子字符串构造的字符串

时间:2012-03-24 07:03:45

标签: c# regex substring match

如何匹配由子串构成的字符串“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)在其中。

感谢,问候

3 个答案:

答案 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方法来查找字符串是否是主字符串的一部分