-4

我正在尝试制作一个正确的正则表达式模式来在它之前和/或之后找到我的数字4有字母和数字and (并且只有第一个字母可以是大写字母,如果存在的话)。但不是只有数字,即使它们是 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");

当此代码不起作用时,有两个例外。

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 回答