c#正则表达式模式查找数字

时间:2012-10-17 20:13:06

标签: c# regex expression

我正在尝试制作正确的正则表达式模式,以便在之前找到数字 4 和/或之后有字母a-z和数字46(只有第一个字母可以是大写A-Z如果存在)。但不是只有数字,即使他们是4和6!如果我找到4我希望用ч替换它,其他符号保持不变!

示例:

  

abs4 4ao 4epa4 a46 E4a 4e ne4es6(All True)

     

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",但我不知道要解决它。有什么建议吗?

1 个答案:

答案 0 :(得分: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.
}