当前位置:编程学习 > C#/ASP.NET >>

求正则表达式代换字符

如何用字正则表达式代换字符,如我有一个字串如下
abcd?1234"?"ABC?EFG"?",我想替换为以下字串
abcd_1234"?"ABC_EFG"?"

即把?替换为下划线,但用双引号包着的?不替换 --------------------编程问答--------------------
str=Regex.Replace(str,"(?<!\")\?(?!\")","_");
--------------------编程问答-------------------- ab?"cd"?1234"?"ABC?EFG"?"


这样的情况怎么替换?  即单边是双引号时,怎么处理? --------------------编程问答-------------------- 单边是双引号时也替换为"_" --------------------编程问答-------------------- 那1楼的正则就满足你的要求 --------------------编程问答-------------------- 一楼的写法如果是单边双引号的情况不会替换 --------------------编程问答--------------------
引用 5 楼 mingyuebin 的回复:
一楼的写法如果是单边双引号的情况不会替换

这样就行了

str=Regex.Replace(str,"(?<!\")\\?|\\?(?!\")","_"); --------------------编程问答-------------------- 多谢两位,我试试 --------------------编程问答-------------------- str=Regex.Replace(str,@"[^\"]{1}\?[^\"]{1}|\"\?[^\"]{1}|[^\"]{1}\?\"",@"_"); --------------------编程问答--------------------
引用 6 楼 q107770540 的回复:
Quote: 引用 5 楼 mingyuebin 的回复:

一楼的写法如果是单边双引号的情况不会替换

这样就行了

str=Regex.Replace(str,"(?<!\")\\?|\\?(?!\")","_");
--------------------编程问答-------------------- 谢谢分享 谢谢
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,