いくつかの異なる単語で構成された長い文字列があります。
それらすべてを調べたいのですが、単語に特殊文字または数字('-'を除く)が含まれている場合、または大文字で始まる場合は、それを削除します(その文字だけでなく単語全体)。すべての意図と目的のために、「外国の」文字は特殊文字として数えることができます。
明らかな解決策は、各単語をループして(分割した後)、次に各文字をループすることですが、もっと速い方法があるといいのですが?おそらく正規表現を使用していますが、私はほとんど経験がありません。
ありがとう
追加した:
(例えば私が欲しいもの:)
入力:「これは、example.comのような入力の5つの単語の例です」
出力:{this、an、of、words、in、an、input、like-so、from}
(私がこれまでに試したこと)
List<string> response = new List<string>();
string[] splitString = text.Split(' ');
foreach (string s in splitString)
{
bool add = true;
foreach (char c in s.ToCharArray())
{
if (!(c.Equals('-') || (Char.IsLetter(c) && Char.IsLower(c))))
{
add = false;
break;
}
if (add)
{
response.Add(s);
}
}
}
編集2:
私にとって、単語はスペースで区切られた文字(a..z)の数である必要があります。、/。/!/ ...最後に「特殊文字」条件を考慮しないでください(これは実際にはほとんどの場合、URLなどを削除するためだけのものです)
だから:「私は犬を見ました。それは黒でした!」結果は{saw、a、dog、was、black}になります