我需要在{}括号之间提取所有单词并放在字符串数组中。 问题是括号之间的文本是动态的。
例如:
您好{name},感谢您访问{site}
在本文中,我希望将名称和网站词放在数组中。
谢谢!
答案 0 :(得分:2)
解决方案:您可以使用Substring()
函数来检索字符串的一部分。
语法: Substring(int startindex,int length);
<强>步骤:强>
1。您需要将index(1)
{
的{{1}}作为第一个参数发送给Substring()
。
2。您需要以length
的形式发送要检索的index(2)
字符串}
(index2-index1)
Substring()
到 String middlevalue="";
String str = "thanks for visiting {site}";
int index1= str.IndexOf("{");
index1++;
int index2=str.IndexOf("}");
if(index1!=-1 && index2!=-1)
middlevalue=str.Substring(index1, (index2 - index1)));
作为第二个参数。
试试这个:
middlevalue
输出
site
包含 - &gt; {{1}}
答案 1 :(得分:2)
Regex
应该适合您,请注意{...}
之间的所有字词都不应包含任何{...}
。
var items = Regex.Matches(input, "\{[^{]+\}").Cast<Match>()
.Select(m=>m.Value.Trim('{','}')).ToArray();
答案 2 :(得分:1)
添加到King的答案,这将帮助您只检索没有括号括号的键。
Regex.Matches(input, @"\{(?<Value>[^{]+)\}").Cast<Match>()
.Select(m=>m.Groups["Value"].Value).ToArray();
答案 3 :(得分:0)
试试这个:
var regex = @"(?<=\{)[^}]*(?=\})";
var text = "Hello my name is {James}";
var matches = Regex.Matches(text, regex);