C# 字符串中多次出现文本
如何使用for循环遍历字符串中给定短语的每次迭代?例如,假设我有以下字符串: 嘿,这是一个示例字符串。字符串是字符的集合 每次出现“是”时,我都想把它后面的三个字符分配给一个新字符串。我知道该怎么做一次,但我正在试图弄清楚如何使用for循环遍历同一单词的多个实例。这就是您想要的吗C# 字符串中多次出现文本,c#,string,loops,for-loop,find,C#,String,Loops,For Loop,Find,如何使用for循环遍历字符串中给定短语的每次迭代?例如,假设我有以下字符串: 嘿,这是一个示例字符串。字符串是字符的集合 每次出现“是”时,我都想把它后面的三个字符分配给一个新字符串。我知道该怎么做一次,但我正在试图弄清楚如何使用for循环遍历同一单词的多个实例。这就是您想要的吗 static void Main(string[] args) { string text=@"Hey, this is an example string. A string is a
static void Main(string[] args)
{
string text=@"Hey, this is an example string. A string is a collection of characters.";
StringBuilder sb=new StringBuilder();
int i=-1;
while ((i=text.IndexOf("is", i+1))>=0)
{
sb.Append(text.Substring(i+2, 3));
}
string result=sb.ToString();
}
//result " is an a "
这是你想要的吗
static void Main(string[] args)
{
string text=@"Hey, this is an example string. A string is a collection of characters.";
StringBuilder sb=new StringBuilder();
int i=-1;
while ((i=text.IndexOf("is", i+1))>=0)
{
sb.Append(text.Substring(i+2, 3));
}
string result=sb.ToString();
}
//result " is an a "
您可以使用这样的正则表达式:
Regex re = new Regex("(?:is)(.{3})");
此正则表达式查找is(?:is)
,并获取接下来的三个字符(.{3})
然后使用正则表达式查找所有匹配项:。这将为字符串中找到的每个返回一个匹配项,后跟3个字符。每场比赛分为两组:
- 组0:包括is和接下来的三个字符
- 第1组:包括下一个thress字符
Matches=re.Matches(“嘿,这是一个示例字符串。字符串是字符的集合。”);
StringBuilder sb=新的StringBuilder();
foreach(匹配中的匹配m)
{
sb.追加(m.组值);
}
使用正则表达式比循环遍历字符串的字符快得多。如果在正则表达式构造函数中使用,则更为重要:您可以使用如下正则表达式:
Regex re = new Regex("(?:is)(.{3})");
此正则表达式查找is(?:is)
,并获取接下来的三个字符(.{3})
然后使用正则表达式查找所有匹配项:。这将为字符串中找到的每个返回一个匹配项,后跟3个字符。每场比赛分为两组:
- 组0:包括is和接下来的三个字符
- 第1组:包括下一个thress字符
Matches=re.Matches(“嘿,这是一个示例字符串。字符串是字符的集合。”);
StringBuilder sb=新的StringBuilder();
foreach(匹配中的匹配m)
{
sb.追加(m.组值);
}
使用正则表达式比循环遍历字符串的字符快得多。如果在正则表达式构造函数中使用,则更为重要:如果出于任何原因必须使用for循环,则可以将by ja72的相关部分替换为:
for (int i = 0; i < text.Length; i++)
{
if (text[i] == 'i' && text[i+1] == 's')
sb.Append(text.Substring(i + 2, 3));
}
for(int i=0;i
不幸的是,我没有足够的声誉在这里添加这一评论,因此发布它作为一个答案 如果出于任何原因必须使用for循环,可以将by ja72的相关部分替换为:
for (int i = 0; i < text.Length; i++)
{
if (text[i] == 'i' && text[i+1] == 's')
sb.Append(text.Substring(i + 2, 3));
}
for(int i=0;i
不幸的是,我没有足够的声誉在这里添加这一评论,因此发布它作为一个答案 是否需要类似以下内容:string st=“嘿,这是一个示例字符串。字符串是字符的集合。”;st=st.替换(“is”,“is+3char”);var arrayOfSplittedSts=st.Split(新[]{“is+3char”},System.StringSplitOptions.None)?是否需要类似以下内容:string st=“嘿,这是一个示例字符串。字符串是字符的集合。”;st=st.替换(“is”,“is+3char”);var arrayOfSplittedSts=st.Split(新[]{“is+3char”},System.StringSplitOptions.None)?