我们说我有字符串:
-dog--cat--d--
我想找到该字符串中的所有单词,长度应大于1。
但更重要的是,我想知道每个单词的第一个和最后一个索引。
我怎么能这样做?
我在考虑创建struct。它可以存储一些数据(索引开始和停止,单词,长度等)
但我真的不知道如何找到任何方法来获得这些话。
到目前为止,我只创建了存储值为0和1的数组(如果元素为' - ',则为0,否则为1)。 有谁能够帮我? :)
答案 0 :(得分:2)
您可以使用正则表达式@"\p{L}{2,}"
查找2个或更多连续字母:
foreach (Match match in Regex.Matches(s, @"\p{L}{2,}")) {
// match.Index, match.Value, etc..
}
答案 1 :(得分:-1)
您可能最好使用正则表达式过滤掉任何非字母并返回单词数组
String sourcestring = "-dog--cat--d--";
Regex re = new Regex(@"\w+");
MatchCollection mc = re.Matches(sourcestring);
int mIdx=0;
foreach (Match m in mc)
{
for (int gIdx = 0; gIdx < m.Groups.Count; gIdx++)
{
Console.WriteLine("[{0}][{1}] = {2}", mIdx, re.GetGroupNames()[gIdx], m.Groups[gIdx].Value);
}
mIdx++;
}