c#提取字符串中的某个值
我试图删除字符串中的某个文本位 假设我的字符串包含html元素,比如段落标记,我创建了一些标记,它们将在开头用“{”标识,在结尾用“}”标识 基本上,我得到的字符串是这样的: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)) ...
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}”,默认值是贪婪匹配