求正则表达式代换字符
如何用字正则表达式代换字符,如我有一个字串如下abcd?1234"?"ABC?EFG"?",我想替换为以下字串
abcd_1234"?"ABC_EFG"?"
即把?替换为下划线,但用双引号包着的?不替换 --------------------编程问答--------------------
str=Regex.Replace(str,"(?<!\")\?(?!\")","_");--------------------编程问答-------------------- ab?"cd"?1234"?"ABC?EFG"?"
这样的情况怎么替换? 即单边是双引号时,怎么处理? --------------------编程问答-------------------- 单边是双引号时也替换为"_" --------------------编程问答-------------------- 那1楼的正则就满足你的要求 --------------------编程问答-------------------- 一楼的写法如果是单边双引号的情况不会替换 --------------------编程问答--------------------
这样就行了
str=Regex.Replace(str,"(?<!\")\\?|\\?(?!\")","_"); --------------------编程问答-------------------- 多谢两位,我试试 --------------------编程问答-------------------- str=Regex.Replace(str,@"[^\"]{1}\?[^\"]{1}|\"\?[^\"]{1}|[^\"]{1}\?\"",@"_"); --------------------编程问答-------------------- --------------------编程问答-------------------- 谢谢分享 谢谢
补充:.NET技术 , C#