none
关于正则表达式的问题 RRS feed

  • 问题

  • 我想使用正则表达式完成替换字符串的工作。

    问题1:想将下句的连个<>中的内容替换成()或者下划线。

    圆柱有<input type="text" id="Useranswer0101" name="Useranswer0101"  size="6">条高,圆锥有<input type="text" id="Useranswer0102" name="Useranswer0102" size="6">条高。

    能否一次替换(用一段正则表达式代码),还是针对不同<>中的字符分别替换(至少要替换两次)?

    问题2:我想将下句的两个{input}分别替换为<input type="text" id="Useranswer0101" name="Useranswer0101"  size="6">和<input type="text" id="Useranswer0102" name="Useranswer0102" size="6">

    圆柱有{input}条高,圆锥有{input}条高。

    我想知道能不能用正则表达式对要替换的字符串进行编号。即用第一个<>的内容替换第一个{input},用第二个<>的内容替换第二个{input}。

    这两个问题其实是一个相反操作,请高手指点一下,代码怎么写,我是初学,请尽量给出注释,谢谢。


    新手学习,再学习......
    2010年4月7日 4:29

答案

  • 你好,这样可以进行反操作吗?就是用input的内容一样(如:{input}),有若干个,希望对它们进行替换,并给每个替换的input都编上ID或name属性,希望变成<input id="001">、<input id="002">、<input name="0903">。

    上面的代码string pattern = @"([^<]*)<input type='text' value='([^']*)'>(\w+)";
    看的不是很懂。“([^']*)”是不是代替“123”?哪这个“([^<]*)”有什么作用?

    请指点一下。谢谢

    这个是不是不好处理啊,高手指点一下吧

    2010年4月9日 1:14

全部回复

  • 你好!

    下面这个意思?

    string input = "AB<input type='text' value='123'>CD<input type='text' value='456'>EF";
    string pattern = @"([^<]*)<input type='text' value='([^']*)'>(\w+)";
    
    Console.WriteLine(Regex.Replace(input, pattern, "$1$2$3"));


    知识改变命运,奋斗成就人生!
    2010年4月7日 7:17
    版主
  • 你好,这样可以进行反操作吗?就是用input的内容一样(如:{input}),有若干个,希望对它们进行替换,并给每个替换的input都编上ID或name属性,希望变成<input id="001">、<input id="002">、<input name="0903">。

    上面的代码string pattern = @"([^<]*)<input type='text' value='([^']*)'>(\w+)";
    看的不是很懂。“([^']*)”是不是代替“123”?哪这个“([^<]*)”有什么作用?

    请指点一下。谢谢

    这个是不是不好处理啊,高手指点一下吧

    2010年4月9日 1:14