<div class="gmail_quote">On Tue, Jul 28, 2009 at 9:11 PM, tiefeng wu <span dir="ltr"><<a href="mailto:icebergwtf@gmail.com">icebergwtf@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

2009/7/29 Nobody <<a href="mailto:nobody@nowhere.com">nobody@nowhere.com</a>>:<br>
<div class="im">>> The output should be something like<br>
>> <script>document.write("hellooooo my name is  21c";)</script><br>
><br>
> import re<br>
> r = re.compile(r'"\s*\+\s*"')<br>
> s = r'''<script>document.write("h" +"e"+ "ll"+ "ooooo"+ " m" +"y"+" n"+"ame"+<br>
> " is  "+"21c";)</script>'''<br>
> r.sub('', s)<br>
><br>
<br>
</div>Nobody's solution is good.<br>
here is more complicated solution, just for regex practice :-)<br>
<br>
>>> s = '<script>document.write("h" +"e"+ "ll"+ "ooooo"+ " m" +"y"+" n"+"ame"+" is  "+"21c";)</script>'<br>


>>> new_s = re.sub(r'(?<=")(.+)(?=")', ''.join(re.findall(r'"([^"]+)"', s)), s)<br>
>>> new_s<br>
'<script>document.write("hellooooo my name is  21c";)</script>'<br>
<div><div></div><div class="h5">--<br>
<a href="http://mail.python.org/mailman/listinfo/python-list" target="_blank">http://mail.python.org/mailman/listinfo/python-list</a><br>
</div></div></blockquote></div><br>


<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Kate, the KDE Advanced Text Editor">

<pre><span style="color: rgb(20, 19, 18);">>>> </span><span style="color: rgb(255, 128, 224);">from</span><span style="color: rgb(20, 19, 18);"> time </span><span style="color: rgb(255, 128, 224);">import</span><span style="color: rgb(20, 19, 18);"> time</span>
<span style="color: rgb(20, 19, 18);">>>> </span><span style="color: rgb(255, 128, 224);">import</span><span style="color: rgb(20, 19, 18);"> re</span>
<span style="color: rgb(20, 19, 18);">>>> s=</span><span style="color: rgb(191, 3, 3);">'<script>document.write("h" +"e"+ "ll"+ "ooooo"+ " m" +"y"+" n"+"ame"+" is  "+"21c";)</script>'</span>
<span style="color: rgb(20, 19, 18);">>>> </span><span style="color: rgb(136, 135, 134);"><i># my version</i></span>
<span style="color: rgb(20, 19, 18);">>>> start=time();null=s.replace(</span><span style="color: rgb(191, 3, 3);">' +'</span><span style="color: rgb(20, 19, 18);">,</span><span style="color: rgb(191, 3, 3);">'+'</span><span style="color: rgb(20, 19, 18);">).replace(</span><span style="color: rgb(191, 3, 3);">'+ '</span><span style="color: rgb(20, 19, 18);">,</span><span style="color: rgb(191, 3, 3);">'+'</span><span style="color: rgb(20, 19, 18);">).replace(</span><span style="color: rgb(191, 3, 3);">'+'</span><span style="color: rgb(20, 19, 18);">,</span><span style="color: rgb(191, 3, 3);">''</span><span style="color: rgb(20, 19, 18);">).replace(</span><span style="color: rgb(191, 3, 3);">'"'</span><span style="color: rgb(20, 19, 18);">,</span><span style="color: rgb(191, 3, 3);">''</span><span style="color: rgb(20, 19, 18);">).replace(</span><span style="color: rgb(191, 3, 3);">'('</span><span style="color: rgb(20, 19, 18);">,</span><span style="color: rgb(191, 3, 3);">'("'</span><span style="color: rgb(20, 19, 18);">).replace(</span><span style="color: rgb(191, 3, 3);">';)'</span><span style="color: rgb(20, 19, 18);">,</span><span style="color: rgb(191, 3, 3);">'";)'</span><span style="color: rgb(20, 19, 18);">);<b>print</b> time()-start</span>
<span style="color: rgb(176, 128, 0);">2.8133392334</span><span style="color: rgb(20, 19, 18);">e-</span><span style="color: rgb(176, 128, 0);">05</span>
<span style="color: rgb(20, 19, 18);">>>> </span><span style="color: rgb(136, 135, 134);"><i># nobody's version</i></span>
<span style="color: rgb(20, 19, 18);">>>> r = re.</span><span style="color: rgb(0, 87, 174);">compile</span><span style="color: rgb(20, 19, 18);">(</span><span style="color: rgb(191, 3, 3);">r'"\s*\+\s*"'</span><span style="color: rgb(20, 19, 18);">)</span>
<span style="color: rgb(20, 19, 18);">>>> start = time();r.sub(</span><span style="color: rgb(191, 3, 3);">''</span><span style="color: rgb(20, 19, 18);">,s);<b>print</b> time()-start</span>
<span style="color: rgb(176, 128, 0);">3.40938568115</span><span style="color: rgb(20, 19, 18);">e-</span><span style="color: rgb(176, 128, 0);">05</span>
<span style="color: rgb(20, 19, 18);">>>> </span><span style="color: rgb(136, 135, 134);"><i># tiefeng's version</i></span>
<span style="color: rgb(20, 19, 18);">>>> start=time();re.sub(</span><span style="color: rgb(191, 3, 3);">r'(?<=")(.+)(?=")'</span><span style="color: rgb(20, 19, 18);">, </span><span style="color: rgb(191, 3, 3);">''</span><span style="color: rgb(20, 19, 18);">.join(re.findall(</span><span style="color: rgb(191, 3, 3);">r'"([^"]+)"'</span><span style="color: rgb(20, 19, 18);">, s)), s);<b>print</b> time()-start</span>
<span style="color: rgb(176, 128, 0);">0.000455141067505</span>
<span style="color: rgb(20, 19, 18);">>>> </span><span style="color: rgb(176, 128, 0);">3.40938568115</span><span style="color: rgb(20, 19, 18);">e-</span><span style="color: rgb(176, 128, 0);">05</span><span style="color: rgb(20, 19, 18);">/</span><span style="color: rgb(176, 128, 0);">2.8133392334</span><span style="color: rgb(20, 19, 18);">e-</span><span style="color: rgb(176, 128, 0);">05</span>
<span style="color: rgb(176, 128, 0);">1.2118644067781548</span>
<span style="color: rgb(20, 19, 18);">>>> </span><span style="color: rgb(176, 128, 0);">0.000455141067505</span><span style="color: rgb(20, 19, 18);">/</span><span style="color: rgb(176, 128, 0);">2.8133392334</span><span style="color: rgb(20, 19, 18);">e-</span><span style="color: rgb(176, 128, 0);">05</span>
<span style="color: rgb(176, 128, 0);">16.177966101690096</span>
<span style="color: rgb(20, 19, 18);">>>> </span><span style="color: rgb(176, 128, 0);">0.000455141067505</span><span style="color: rgb(20, 19, 18);">/</span><span style="color: rgb(176, 128, 0);">3.40938568115</span><span style="color: rgb(20, 19, 18);">e-</span><span style="color: rgb(176, 128, 0);">05</span>
<span style="color: rgb(176, 128, 0);">13.349650349662966</span></pre><br>