-4

文字と数字が含まれる前および/または後に数字の4を見つけるための正しい正規表現パターンを作成しようとしています(存在する場合、最初の文字のみが大文字になる可能性があります)。しかし、4 と 6 であっても、数字だけの場合は違います。他のシンボルと置き換えたい場合は、そのままにしておきます。a-z46A-Z4ч

例:

abs4 4ao 4epa4 a46 E4a 4e ne4es6 (すべて真)

4 a41 4a7 456 46 64 44 e4A (すべて偽)

このコードはほとんど動作します

string replaced4 = Regex.Replace(richTextBox3.Text, "([A-Z]?[a-z]+)4([a-z46])|([A-Z]?[a-z46])4([a-z]+)", "$1ч$2");

このコードが機能しない場合、2 つの例外があります。

1. 最初のシンボルが 4 の場合

2. 4 が最後のシンボルの場合

問題はここにあります"$1ч$2"が、それを修正する方法がわかりません。助言がありますか?

4

1 に答える 1

0

4 が含まれていることを手動で確認してから ( myString.Contains('4'))、次を使用します。

[A-Za-z46][a-z46]+

if (RegEx.IsMatch(myString, "[A-Za-z46][a-z46]+"))
{
  myString = myString.Replace("4", "$1ч$2"); // If there's not actually a 4, it won't do anything.
}
于 2012-10-17T20:59:42.593 に答える