c#提取字符串中的某个值

c#提取字符串中的某个值,c#,asp.net,C#,Asp.net,我试图删除字符串中的某个文本位 假设我的字符串包含html元素,比如段落标记,我创建了一些标记,它们将在开头用“{”标识,在结尾用“}”标识 基本上,我得到的字符串是这样的: text = "<p>{token}</p><p> text goes here {token3}</p>" 差不多 var r = new Regex("({.*?})"); foreach(var match in r.Matches(myString)) ...

我试图删除字符串中的某个文本位

假设我的字符串包含html元素,比如段落标记,我创建了一些标记,它们将在开头用“{”标识,在结尾用“}”标识

基本上,我得到的字符串是这样的:

text = "<p>{token}</p><p> text goes here  {token3}</p>"
差不多

var r = new Regex("({.*?})");
foreach(var match in r.Matches(myString)) ...
表示您的正则表达式是非贪婪的。如果你省略它,你只需要得到第一个
{
和最后一个
}
之间的所有内容

另外,您也可以使用此选项:

var index = text.IndexOf("{");
while (index != -1)
{
    var end = text.IndexOf("}", index);
    result.Add(text.Substring(index, end - index + 1));
    index = text.IndexOf("{", index + 1);
}
差不多

var r = new Regex("({.*?})");
foreach(var match in r.Matches(myString)) ...
表示您的正则表达式是非贪婪的。如果你省略它,你只需要得到第一个
{
和最后一个
}
之间的所有内容

另外,您也可以使用此选项:

var index = text.IndexOf("{");
while (index != -1)
{
    var end = text.IndexOf("}", index);
    result.Add(text.Substring(index, end - index + 1));
    index = text.IndexOf("{", index + 1);
}

我只需要使用正则表达式来实现:

Regex reg = new Regex("{.*?}");

var results = reg.Matches(text);
正则表达式搜索
{
}
之间的任何字符。
*?
表示匹配任何字符,但不是以贪婪的方式。因此,它将在大括号之间搜索尽可能短的字符串。

我将使用正则表达式:

Regex reg = new Regex("{.*?}");

var results = reg.Matches(text);
正则表达式搜索
{
}
之间的任何字符。
*?
表示匹配任何字符,但不是以贪婪的方式。因此,它将在大括号之间搜索尽可能短的字符串。

IndexOf和Substring,或者Regex.use regular expressions.IndexOf和Substring,或者Regex.use regular expressions。这将提取“{token}

text goes here{token3}”,默认为贪婪匹配这将提取“{token token}

text goes here{token3}”,默认值是贪婪匹配