日期:2014-05-17  浏览次数:20932 次

一个正则表达式替换问题 请教... 急...
现有这样一段文本:
(RAB.RelReqPsPerCell+IU.NbrRabPsRelIuConnPerCell-RAB.RelReqPsPerCell.40-RAB.RelReqPsPerCell.16-IU.NbrRabPsRelIuConnPerCell.40-IU.NbrRabPsRelIuConnPerCell.16)

我要替换其中的
RAB.RelReqPsPerCell 假如替换成%%%%% (注:RAB.RelReqPsPerCell.40及RAB.RelReqPsPerCell.16不替换!)

平且别把RAB.RelReqPsPerCell后面的+号替换了

正确替换后的文本
(%%%%%+IU.NbrRabPsRelIuConnPerCell-RAB.RelReqPsPerCell.40-RAB.RelReqPsPerCell.16-IU.NbrRabPsRelIuConnPerCell.40-IU.NbrRabPsRelIuConnPerCell.16)


自己写了几个表达式都不达到效果

(%%%%%IU.NbrRabPsRelIuConnPerCell-RAB.RelReqPsPerCell.40-RAB.RelReqPsPerCell.16-IU.NbrRabPsRelIuConnPerCell.40-IU.NbrRabPsRelIuConnPerCell.16)-- 加号没了

(%%%%%+IU.NbrRabPsRelIuConnPerCell-%%%%%.40-%%%%%.16-IU.NbrRabPsRelIuConnPerCell.40-IU.NbrRabPsRelIuConnPerCell.16) -- 替换多了

这些都是错的..

请教如何写正则才可以达到我说的那个效果...

------解决方案--------------------
或者这个
C# code
@"RAB\.RelReqPsPerCell(?=[+\-*/()])"

------解决方案--------------------
C# code
string str = File.ReadAllText(@"C:\Documents and Settings\Administrator\桌面\test.txt", System.Text.Encoding.GetEncoding("gb2312"));
        //string str = TextBox2.Text;

        Regex reg = new Regex(@"(?is).+?\+");
        str = reg.Replace(str, "%%%%%+");
        Response.Write(str);

//%%%%%+IU.NbrRabPsRelIuConnPerCell-RAB.RelReqPsPerCell.40-RAB.RelReqPsPerCell.16-IU.NbrRabPsRelIuConnPerCell.40-IU.NbrRabPsRelIuConnPerCell.16)