子串替换的问题

时间:2014-05-06 18:11:39

标签: c# java regex string replace

所以,假设我有一系列特殊字符,例如".[]{}()\/*+?|^$"

我想要做的是采用输入 string,例如".com",并用相同的字符替换所有出现的特殊字符,但使用{{ 1}}预先填写。

例如,该输入的结果为"\"

我的方法是迭代特殊字符数组,并在输入字符串中搜索当前特殊字符的出现,并进行替换。

问题是找到"\.com"并替换为".",但"\."本身就是一个特殊字符,因此稍后会找到并替换为{{ 1}}。

如何避免这种情况并仍将"\"保留为特殊字符? (我希望"\\."替换为"\",但不会在这些情况下替换。)

我希望自己足够清楚。

谢谢大家的阅读!

2 个答案:

答案 0 :(得分:2)

查看这些特殊字符".[]{}()\/*+?|^$",因为它们是正则表达式字符,我相信您正在寻找Regex.Escape方法。

答案 1 :(得分:1)

如果我理解你的问题,简单的解决方案似乎只是'\'是你的特殊字符数组中的第一个元素 - 然后,你用'\','替换字符串中的'\'字符。 “用'。'等,但你不会重新替换生成的'。'。