c#正则表达式表达式以提取括号中的所有非数字值

时间:2018-11-09 16:32:22

标签: regex

这是我到目前为止\{([^{]*[^0-9])\}构建的Regex表达式。

  

“这是示例字符串{0} {1} {} {abc} {12abc} {abc123}”

我希望提取字符串中包含方括号且不只包含整数的所有内容。

  

(例如,“ {}”    '{abc}''{12abc}''{abc123}'

但是最后一个末尾包含数字的数字不会与其余数字一起提取。

  

{abc123}

如何提取大括号中不包含整数的所有字符串值?

1 个答案:

答案 0 :(得分:1)

您可以使用

var res = Regex.Matches(s, @"{(?!\d+})[^{}]*}")
    .Cast<Match>()
    .Select(x => x.Value)
    .ToList();

请参见regex demoonline C# demo

模式详细信息

  • {-一个{字符
  • (?!\d+})-不能包含1个以上的数字,然后在当前位置的右侧立即允许}
  • [^{}]*-除{}以外的0多个字符
  • }-一个}字符。