处理正则表达式转义替换文本包含美元字符stringinput="HelloWorld!";字符串模式=“(世界|宇宙)”;字符串替换="$1";字符串结果=Regex.Replace(输入、模式、替换);使用以下示例,结果将是“HelloWorld!”因为$1被第一组(World|Universe)代替了,但是我想要的结果是“Hello$1!”Regex.Escape方法用于转义正则表达式模式,而不是用于替换,因为它可以转义其他字符,如斜线和其他正则表达式模式字符。解决我的问题的明显方法是使我的替换等于“$$1”并将达到“Hello$1!”,但我想知道美元符号是否是我必须转义的唯一值(假设替换是用户生成的,我不知道提前),或者是否有一个辅助函数已经这样做了。有谁知道转义Regex.Replace(字符串输入、字符串模式、字符串替换)使用的替换值的函数?来自MSDN:replacement参数指定用于替换输入中每次出现的字符串。替换可以包括文字文本和替换的任意组合。定义了以下替换:替换是在替换模式中唯一识别的特殊构造。不支持其他正则表达式语言元素,包括匹配任何字符的字符转义和句点(.)。同样,替换语言元素仅在替换模式中被识别,而在正则表达式模式中永远无效。所以看起来它只是需要转义的$字符。以上就是C#学习教程:处理包含美元字符的正则表达式转义替换文本。代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
