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
。
谢谢!
你可以做一个这样的表达式。
现场演示
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 演示