正则表达式忽略大括号

时间:2013-07-01 23:56:41

标签: c# .net regex

{unknown string}  
{unknown string  
unknown string}
unknown string

在上述四种情况下,我如何提出一个只能识别字符串的正则表达式(这是未知的,所以我不能对特定字符串进行明确匹配)?

2 个答案:

答案 0 :(得分:3)

你没有尝试过多少,对吗?

string result = Regex.Match(input, "hello").Value;

如果你只想要花括号之间的东西:

string result = Regex.Match(input, @"\{?(.*)\}?").Groups[1].Value;

答案 1 :(得分:2)

\w+

它将匹配所有" word" -characters

如果你需要将它推广到可选花括号和#34;之间的东西。你可以使用:

\{?(.+?)\}?

表示:

  1. \{? - 可选的大括号字符。它被转义,因为{在正则表达式中具有特殊含义。 ?量词表示01次(因此是可选的)
  2. (.+?) - 表示处于非贪婪模式的任何事物。你需要非贪婪,以便正则表达式在下一个}之前停止(如果有的话)
  3. \}? - 与第1项
  4. 相同