RegEx 替换 C# 中字符串中的特定字母

Pur*_*aik 2 c# regex pattern-matching

我需要一个正则表达式来用“?”替换所有出现的“l” 在字符串中。仅在以下情况下才应进行更换:

1)z之前有l

2)应该有一个数字或.之后l

例如:

1) 如果字符串是abc zl12,200,则输出应该是abc z?12,200

2) 如果字符串是zl.00,则输出应该是z?.00

3) 如果字符串是adbc zlopr,则输出应该是adbc zlopr

谢谢!

Adi*_*dil 5

你可以做出这样的表达。

现场演示

string output = Regex.Replace(str, @"(z)l(\d+|\.)", "$1?$2");
Run Code Online (Sandbox Code Playgroud)
  • (z) 将寻找 z 并由 $1 标识
  • l 是您要替换的字符吗?
  • (\d+|.) 用于 number 或 dot .,由 $2 标识

()用于制作段,我们使用$1$2获取段并生成输出字符串和替换字符。