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

本文关键字:字符串 用于 替换 RegEx | 更新日期: 2023-09-27 18:32:55

我需要一个正则表达式来替换字符串中所有出现的"l"为"ł"。只有在以下情况下才应进行更换:

1)l之前有z

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

例如:

1)如果字符串abc zl12,200,输出应abc zł12,200

2)如果字符串zl.00,输出应zł.00

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

谢谢!

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

你可以做一个这样的表达式。

现场演示

string output = Regex.Replace(str, @"(z)l('d+|'.)", "$1ł$2");
  • (z) 将查找 z 并按 $1 标识
  • l 是要替换为 ł 的字符
  • (''d+|.) 表示数字或点 .,由 $2 标识

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

另一种

使用look around断言的解决方案。

正则表达式(?<=z)l(?='d|'.)

解释

l(?='d|'.)此部分将匹配一个l,然后是digit或句点.

(?<=z)将查看l前面是否带有z

所以你的代码将是

string output = Regex.Replace(str, @"(?<=z)l(?='d|'.)", "ł");

正则表达式101 演示Ideone 演示