代码之家  ›  专栏  ›  技术社区  ›  Sangram Nandkhile Viktor Klang

之间数据的正则表达式。以及{

  •  1
  • Sangram Nandkhile Viktor Klang  · 技术社区  · 14 年前

    我的正则表达式不是很好,所以我正在寻求帮助。我需要从他们中间获取内容 . { .

    例子:

      .aaa  { }
      .bbb {}
       ccc {}
       ddd {}
       eee {}
    

    即。 aaa bbb 一串串。这个数据可以更改,所以我想使用正则表达式。谢谢。

    3 回复  |  直到 14 年前
        1
  •  5
  •   Tim Pietzcker    14 年前
    (?<=\.)[^{]*(?=\{)
    

    将匹配 . {

    说明:

    (?<=\.) 断言前面的字符是一个点。 [^{]* { . (?=\{) { .

    迭代字符串(C#)中的所有匹配项:

    Regex regexObj = new Regex(@"(?<=\.)[^{]*(?=\{)");
    Match matchResults = regexObj.Match(subjectString);
    while (matchResults.Success) {
        // matched text: matchResults.Value
        // match start: matchResults.Index
        // match length: matchResults.Length
        matchResults = matchResults.NextMatch();
    } 
    
        2
  •  1
  •   BenMorel Sonaten    11 年前

    我终于把所有的数据都记录下来了。然后{做一个列表。使用stackoverflow的REGEX帮助。我已替换所有\n、\r、空格,请将其替换为空白。我已经根据我的需要做了一些改变。 这是我的最后一个功能,它工作得非常出色。

    public static void MakeList(string s)
            {
    
                string PATTERN = @"(?<=\.)[^{]*(?=\{)";
    
                s = s.Replace("\r", "").Replace("\n", "").Replace(" ","");
                var matches = Regex.Matches(s, PATTERN);
                var styleList = new List<string>();
    
    
                for (int i = 0; i < matches.Count; i++)
                {
    
                    styleList.Add(matches[i].ToString());
                }
            }
    
        3
  •  0
  •   Timwi    14 年前

    这里有一个更简单的例子:

    \.([^{]*)\{
    

    \.\s*([^{]*?)\s*\{
    

    使用示例:

    foreach (Match match in Regex.Matches(input, @"\.\s*([^{]*?)\s*\{"))
        Console.WriteLine(match.Groups[1].Value);
    

    本例根据您的输入打印aaa和bbb。