我需要一个RegEx来在字符串中用“ł”替换所有出现的“l”。 只有在以下情况下才能进行更换:
1)z
之前有l
,
和
2).
l
例如:
1)如果字符串为abc zl12,200
,则输出应为abc zł12,200
。
2)如果字符串为zl.00
,则输出应为zł.00
。
3)如果字符串为adbc zlopr
,则输出应为adbc zlopr
。
谢谢!
答案 0 :(得分:4)
你可以做这样的表达。
<强> Live Demo 强>
string output = Regex.Replace(str, @"(z)l(\d+|\.)", "$1ł$2");
.
,由$ 2标识 ()
用于制作细分,我们使用$1
和$2
来获取细分,并生成输出字符串以及替换字符。
答案 1 :(得分:2)
使用look around
断言的另一种解决方案。
正则表达式:(?<=z)l(?=\d|\.)
解释:
l(?=\d|\.)
此部分将匹配l
后跟digit
或句点.
(?<=z)
将查看l
前面是z
。
所以你的代码将是
string output = Regex.Replace(str, @"(?<=z)l(?=\d|\.)", "ł");
http://shiny.rstudio.com/articles/html-ui.html Regex101 Demo