wrong.substring(3,wrong.length-3)  这是什么意思啊?

解决方案 »

  1.   

    是这样,字符串”图号:* “      *通配表示后面内容。想把*提取出来wrong.substring(3)这样就可以了。后边的参数不确定,不能写!
      

  2.   

    是这样,字符串”图号:* “      *通配表示后面内容。想把*提取出来wrong.substring(3)这样就可以了。后边的参数不确定,不能写!
    回头试一下~谢谢!
      

  3.   

    是这样,字符串”图号:* “      *通配表示后面内容。想把*提取出来wrong.substring(3)这样就可以了。后边的参数不确定,不能写!           string wrong = "图号:*";    
                app.Selection.Find.Text = wrong.Substring(3);
                app.Selection.Find.Replacement.Text = doc.Name;
    如果把*换成文件里面的实际字符,编译通过。*号还是不能
      

  4.   

    app.Selection.Find.Text = app.Selection.Text.SubString(3);
      

  5.   

    这样貌似是把文档开头光标位置插入了字符“图号:doc.name”,怎么替换掉文本里的“图号:*”
      

  6.   

    说出你最终的目的,不要拍脑袋随便想个方案,然后问方案如何实现
    1.有可能根本不能实现.2.有可能有简单的多的办法实现还有,所谓通配符,那是正则里面用的,你单独拿个字符串里面放通配符,然后替换还要自己写代码,不累?
    既然要用通配符匹配,为什么不正则,而是substring?
      

  7.   

    版主,是这样,有一批word文档,每个word文档里面都有一段内容:“图号:*”。   其中 *是一串长度固定的数字和字母混合字符串,类似于I47E002003。   现在是要实现把每个word里的“图号:*”这段文字中的*内容都替换为对应的文件名即doc.name。     遍历读取文档已经写好了,问题就是怎么替换。      我写的替换函数如下:
      private void WordReplace2(string filePath)
            {
                Microsoft.Office.Interop.Word._Application app = new Microsoft.Office.Interop.Word.ApplicationClass();
                object nullobj = System.Reflection.Missing.Value;
                object file = filePath;
                Microsoft.Office.Interop.Word._Document doc = app.Documents.Open(
                ref file, ref nullobj, ref nullobj,
                ref nullobj, ref nullobj, ref nullobj,
                ref nullobj, ref nullobj, ref nullobj,
                ref nullobj, ref nullobj, ref nullobj,
                ref nullobj, ref nullobj, ref nullobj, ref nullobj) as Microsoft.Office.Interop.Word._Document;            app.Selection.Find.ClearFormatting();
                app.Selection.Find.Replacement.ClearFormatting();            String wrong = "图号:*";                           //^[A-Za-z0-9]+$怎么使用?
                app.Selection.Find.Text = wrong.Substring(3);
                app.Selection.Find.Replacement.Text = doc.Name;            object objReplace = Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll;
                app.Selection.Find.Execute(ref nullobj, ref nullobj, ref nullobj,
                                           ref nullobj, ref nullobj, ref nullobj,
                                           ref nullobj, ref nullobj, ref nullobj,
                                           ref nullobj, ref objReplace, ref nullobj,
                                           ref nullobj, ref nullobj, ref nullobj);
                doc.Save();            doc.Close(ref nullobj, ref nullobj, ref nullobj);            app.Quit(ref nullobj, ref nullobj, ref nullobj);
            }
      

  8.   

    所以说,你的文件里根本不存在通配符,所谓通配符,是你自己想象的
    就是说,文件里根本不是"图号:*",而是"图号:I47E002003"
    那你去替换*,当然不成功.你要想办法把I47E002003抠出来替换成doc.name
      

  9.   

    C#中:
    变量.Substring(参数1,参数2);
    截取字串的一部分,参数1为左起始位数,参数2为截取几位。
    如:string s1 = str.Substring(0,2);
    C#中有两个SubString重载函数。大神可是以专业开发人员为伍,这用法都不知道?楼主的意思是:那个星号(*) 代表任意个任意字符,就是我们通常所说的"通配符";比如想在c盘的根目录查找c盘根目录里所有的文本文件(.txt),那么就可以输入命令"dir c:\*.txt"。这是dos命令下的用法。估计楼主是从这个通配符想到的解决方法。
    用正则表达式吧,文本中的内容是这样的话:
    图号:I47E002003。
    可以正则匹配:
    图号:*。
    再对*号的内容限制长度,基本就能匹配出来了。
      

  10.   

    我是大批量的word文档,每个里面都有“图号:I47E002003”类似格式的内容“图号:”后面的内容只有长度是固定的,所以需要一个公式表达出来。  如果只是把I47E002003变成文件名,我还在这问干嘛。
      

  11.   

    C#中:
    变量.Substring(参数1,参数2);
    截取字串的一部分,参数1为左起始位数,参数2为截取几位。
    如:string s1 = str.Substring(0,2);
    C#中有两个SubString重载函数。大神可是以专业开发人员为伍,这用法都不知道?楼主的意思是:那个星号(*) 代表任意个任意字符,就是我们通常所说的"通配符";比如想在c盘的根目录查找c盘根目录里所有的文本文件(.txt),那么就可以输入命令"dir c:\*.txt"。这是dos命令下的用法。估计楼主是从这个通配符想到的解决方法。
    用正则表达式吧,文本中的内容是这样的话:
    图号:I47E002003。
    可以正则匹配:
    图号:*。
    再对*号的内容限制长度,基本就能匹配出来了。
    你理解我的意思了,问题就是具体该怎么匹配,有办法没?
      

  12.   

    wrong.substring(3);就行啊,默认从第4位开始选取剩下的。