のような文字列に一致する正規表現をC#で作成しようとしています"�"
が、Regexは最初の一致で停止し、文字列全体に一致させたいと思います。
私はこれを行うために多くの方法を試してきましたが、現在、私のコードは次のようになっています。
string sPattern = @"/&#\d{2};/";
Regex rExp = new Regex(sPattern);
MatchCollection mcMatches = rExp.Matches(txtInput.Text);
foreach (Match m in mcMatches) {
if (!m.Success) {
//Give Warning
}
}
また、試しlblDebug.Text = Regex.IsMatch(txtInput.Text, "(&#[0-9]{2};)+").ToString();
てみましたが、最初の一致のみが見つかりました。
任意のヒント?
編集:
私が探している最終結果は�&#
、最初の一致のみが行われるため、私のコードはこれを正しい文字列としてマークするため、現在のように、のような文字列は正しくないものとしてラベル付けされることです。
2番目の編集:
コードをこれに変更しました
string sPattern = @"&#\d{2};";
Regex rExp = new Regex(sPattern);
MatchCollection mcMatches = rExp.Matches(txtInput.Text);
int iMatchCount = 0;
foreach (Match m in mcMatches) {
if (m.Success) {
iMatchCount++;
}
}
int iTotalStrings = txtInput.Text.Length / 5;
int iVerify = txtInput.Text.Length % 5;
if (iTotalStrings == iMatchCount && iVerify == 0) {
lblDebug.Text = "True";
} else {
lblDebug.Text = "False";
}
そして、これは私が期待したように機能しますが、それでもこれはより良い方法で達成できると思います。
3番目の編集:@devundefが示唆しているように、式"^(&#\d{2};)+$"
は私がホッピングしていた作業を実行するので、これを使用すると、最終的なコードは次のようになります。
string sPattern = @"^(&#\d{2};)+$";
Regex rExp = new Regex(sPattern);
lblDebug.Text = rExp.IsMatch(txtInput.Text).ToString();
私は常に文字列文字(^ / $)の開始と終了を無視します。