在我的帮助应用程序中,我正在尝试在Ipython中进行原型工作并快速将其转换为脚本(当它工作时)。感谢Click button copy to clipboard using jQuery,我在此页面上有一个工作剪贴板功能:
http://jsfiddle.net/codyc54321/udxp4osm/1/
虽然它会复制到剪贴板,但它会像一个像
这样的漫无边际的字符串 match = re.match(in_rgx, string)match#<_sre.SRE_Match at 0x7f90674cf3d8>match.gromatch.group match.groupdict match.groups match.group()#'In [3]: '
而不是我在页面上看到的内容:
match = re.match(in_rgx, string)
match
#<_sre.SRE_Match at 0x7f90674cf3d8>
match.gro
match.group match.groupdict match.groups
match.group()
#'In [3]: '
并且没有新行分隔。出于某种原因,我的小提琴实际上不是复制,但我的应用程序是,但是我使用django过滤器将我的换行符(\ n)转换为<br>
标签:
<p id="clean-code">match = re.match(in_rgx, string)<br /><br />match<br />#<_sre.SRE_Match at 0x7f90674cf3d8><br /><br />match.gro<br />match.group match.groupdict match.groups <br /><br />match.group()<br />#'In [3]: '<br /></p>
当我点击“复制到剪贴板”时,获取该字符串,没有br标签或换行符。因此,如果我粘贴到atom,gedit,任何文本编辑器中,我会得到一条长行,这会使我的页面无用。我尝试在每一行之后放一个真正的'\ n',你可以想象只是添加了一个新行。我尝试了文字\ n文本,然后我得到:
match = re.match(in_rgx, string)\nmatch\n#<_sre.SRE_Match at 0x7f90674cf3d8>\nmatch.group()\n#'In [3]: '\n
作为一条线,这是有道理的。这是我当前的python与多余的\ n:
def clean_ipython_line(code_line):
in_rgx = r"^In \[\d+\][:] "
out_rgx = r"^Out\[\d+\][:] "
in_match = re.match(in_rgx, code_line)
out_match = re.match(out_rgx, code_line)
if in_match:
line = code_line.replace(in_match.group(), '') + '\\n'
return line
elif out_match:
line = ('#' + code_line.replace(out_match.group(), '')) + '\\n'
return line
else:
return code_line
def clean_ipython_block(unclean_code):
unclean_lines = unclean_code.split('\r\n')
cleaned_lines = []
for dirty_line in unclean_lines:
cleaned_lines.append(clean_ipython_line(dirty_line))
clean_block = "\r\n".join(cleaned_lines)
print(clean_block)
return clean_block
是否有内置的javascript方式复制到剪贴板将这些br标签转换为真正的换行符,当我粘贴到编辑器中时会破坏这些行?谢谢