要替换文本中的特定字符串,但是当这个特定字符串包含在""中时不去替换。
如:有文本
编码 + "编码" + "haha"
要将 编码 替换为 Code ,期望的结果为
Code + "编码" + "haha"如何实现呢? 谢谢!
如:有文本
编码 + "编码" + "haha"
要将 编码 替换为 Code ,期望的结果为
Code + "编码" + "haha"如何实现呢? 谢谢!
解决方案 »
- Div+Css样式显示
- 怎么指定路径打开txt文档?
- 一个关于C# 泛型排序的问题。
- get 和set访问器
- 求助!急!在线等
- 求教!各位大大帮帮忙亚!!!!!!!!!!!!!!!!!
- dataset中新增一列的问题
- 用 CentOS 的光盘进 另一个 Linux 系统做 Rescue 后,进行过 Chroot 操作,现在重新启动会导致失败,请帮忙看下如何解决,谢谢
- 怎样取的存储过程中的传出值,怎样在事务中一起执行INSERT语句和存储过程,在线等到11:30
- 急!!如何用打印机打印PICTUREBOX中的用PAINT事件画出的图形??
- C#有没有什么方法检查u盘存在
- 是问题太难吗?在数据库开发里帖子没人理,看看这有人帮忙解决吗?
Regex re = new Regex(@"[^\""]编码[^\""]");// 替换
string oldstr = "your string";string newstr = re.Replace(oldstr, "replace to");
str = str.Replace("\"编码\"", "靠,这叫temp!!!");
str = str.Replace("编码", "code");
str = str.Replace("靠,这叫temp!!!", "\"编码\"");
Console.WriteLine(str);
string strSrc = "编码 + \"编码\" + \"haha\"";
string strRegex = "([^\"]|^)编码[^\"]";
MessageBox.Show(Regex.Replace(strSrc, strRegex, "Code"));
要将 编码 替换为 Code ,期望的结果为
Code + "编码" + "haha"
用过正则吗?
到下面这里看一下
http://www.unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm
你那个会把前后各一个字符也替换掉的这个要用否定式向后查看和向前查看,这样string strSrc = "编码 + \"编码\" + \"haha\"";
string strRegex = "(?!<\")编码(?!\")";
MessageBox.Show(Regex.Replace(strSrc, strRegex, "Code"));
using System.Text.RegularExpressions;
方括号表示字符集,^表示取反,[^\"]表示一个非双引号字符
会把前后各一个字符替换掉的
string sourceString = @"编码 + ""编码"" + ""haha""";
string pattern = @"[^""][\u4e00-\u9fa5][^""]";
string result = System.Text.RegularExpressions.Regex.Replace(sourceString,pattern,@"code");
WL(result);//输出
//////////////////////////////////////////////
MSN:[email protected]请给我一个与您交流的机会!
偶了解了。
学习了。
//////////////////////////////////////////////
MSN:[email protected]请给我一个与您交流的机会!
如果之替换外面的话Regex.Replace("编码 + \"编码 编码 编码\" + \"ha 编码 ha\"", @"((^|"")[^""]*($|""))", new MatchEvaluator(regs), RegexOptions.IgnoreCase)public string regs(Match m)
{
return m.ToString().Replace("编码", "zz");
}
string sourceString = @"编码 + ""编码"" + ""haha""";
string pattern = @"([^""])(?<name>[\u4e00-\u9fa5])([^""])";
string result = System.Text.RegularExpressions.Regex.Replace(sourceString,pattern,@"$1${name}$2");
WL(result);//输出
//////////////////////////////////////////////
MSN:[email protected]请给我一个与您交流的机会!
---------------------------
如果只替换引号外面的 我那个依然可以完成:-)
private void Replace2(ref string Content, string FindString, string NewString)
{
Content = Content.Replace(FindString, NewString);
Content = Content.Replace("\""+NewString+"\"","\""+FindString+"\"");
}例如,这个字符串:代码 "代码" 注释
将“代码”替换为“源代码”
第一步:全部替换,字符串变成了 源代码 "源代码" 注释
第二步:将"源代码"替换回来,变成"代码",这就变成了 源代码 "代码" 注释
{
string a = yushi;//"bcjjbcjabcdwbcwabccdf";
int a1 = a.IndexOf("a");
int b1 = a.IndexOf("d");
if(a1==-1||b1==-1)
{
string newed=yushi.Replace (tihuan,newstring);
ok(oldstring ,postion ,newed,i );
return;
}
string s=a.Substring(a1,b1-a1+1);
oldstring [i]=s;
postion [i]=a1;
yushi=a.Remove (a1,b1-a1+1);
i++;
replace (i,oldstring ,postion ,newstring ,yushi ,tihuan );
}
public void ok(string[] a, int[] p, string zz,int j)
{
for (int i =j-1; i >=0; i--)
{
int f1 = Convert.ToInt32 (p[i]);
string fs = a[i].ToString();
zz=zz.Insert(p[i], a[i].ToString());
}
this.Response.Write(zz);
}
protected void Page_Load(object sender, EventArgs e)
{
int ii = 0;
string[] ss=new string [100];
int[] jj=new int [100];
string news="55";
string yushi="bcjjbcjabcdwbcwabccdf";
string th="bc";
replace(ii, ss, jj, news, yushi, th);
}
需要自己修改一下