假设我们有一些很好的文本:
Hello world
Run Code Online (Sandbox Code Playgroud)
我们选择了world视觉模式.然后我们可以使用像这样的闪亮命令过滤视觉选择:
:'<,'>!echo foobar
Run Code Online (Sandbox Code Playgroud)
然而,这将取代整个线foobar而不仅仅是world.为什么会这样,我们怎样才能取代world?
我打算用 python 编写一个小型文本编辑器。因此,我需要一个快速的字符串操作/文本处理库,出于性能原因,最好用 C 编写。
我如何知道哪些 python 模块是在底层用 C 编写的?
我想创建一个表示字符串的python类,但可以有效地修改.我考虑过实现一个树状数据结构,但我不知道如何让它像字符串一样运行,这样它就可以用在所有类型的字符串函数中,例如在正则表达式中.
当然,每次需要时都可以从数据结构构造一个字符串,但这不是非常有效,并且浪费了数据结构的效率.
有任何想法吗?
我一直在努力使python正则表达式试图匹配文本中的段落,但我没有成功.我需要获得段落的开头和结尾位置.
文本示例:
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At
vero eos et accusam et justo duo dolores et ea rebum.
Stet clita kasd gubergren,
no sea takimata sanctus est Lorem ipsum dolor sit amet.
Ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At
vero eos et accusam …Run Code Online (Sandbox Code Playgroud) 我刚刚安装了一个Cygwin的变种babun.我希望cygwin用户主目录等于我的Windows主目录.所以,要清楚,我不想将cygwin主页添加到C:\Users新用户,我希望它与我当前的Windows主目录相同.
现在,根据这篇文章,如何在安装后更改我的Cygwin主文件夹?,有一个简洁的方法使cygwin主目录指向您的Windows主目录.您打开文件/etc/nsswitch.conf并确保有一行db_home: windows.然而,重新启动我的电脑后, echo $HOME仍然说/home/chiel.tenbrinke,这不应该是什么.应该说类似的东西/cygdrive/c/Users/Chiel.tenBrinke.
为什么这不起作用?
我的cygwin版本是CYGWIN_NT-6.1-WOW IM-Chiel-2015 1.7.35(0.287/5/3) 2015-03-04 12:07 i686 Cygwin.
假设我们有一个清单L.笛卡儿积L x L可以这样计算:
product = [(a,b) for a in L for b in L]
Run Code Online (Sandbox Code Playgroud)
如何L x L x L x ... x L以短而有效的方式计算笛卡尔幂(n次,对于给定的n)?
我想在cython sourcefile()中调用gcc内置函数,例如__builtin_ffs.pyx
cpdef int ffs(long b):
return __builtin_ffs(b);
Run Code Online (Sandbox Code Playgroud)
可能吗?如果是这样,怎么样?
假设我们正在对一堆文件进行多行正则表达式模式搜索,并且我们想从 grep 中提取匹配项。默认情况下,grep 输出由换行符分隔的匹配项,但由于我们使用的是多行模式,这会造成我们无法轻松提取单个匹配项的不便。
grep -rzPIho '}\n\n\w\w\b' | od -a
Run Code Online (Sandbox Code Playgroud)
根据文件树中的文件,这可能会产生类似的输出
0000000 } nl nl m y nl } nl nl i f nl } nl nl m
0000020 y nl } nl nl m y nl } nl nl i f nl } nl
0000040 nl m y nl
0000044
Run Code Online (Sandbox Code Playgroud)
如您所见,我们无法拆分换行符以获得进一步处理的匹配项,因为匹配项本身包含换行符。
现在--null(or -Z) 仅与 结合使用-l,这使得 grep 仅列出文件名而不是匹配项,因此这在这里无济于事。
请注意,这不是find 的 -print0 和 xargs 的 -0 开关是否有等价的 grep的副本?,因为该问题的要求不同,因此可以使用替代技术来回答。
那么,我们怎样才能做到这一点呢?也许将 grep …
以下代码示例演示了F#中访客模式的实现
module VisitorPattern
type IVisitor =
abstract Visit : ObjectA -> unit
abstract Visit : ObjectB -> unit
and IVisitable =
abstract InvokeVisit : IVisitor -> unit
and ObjectA =
interface IVisitable with
member this.InvokeVisit (visitor: IVisitor) =
visitor.Visit(this)
and ObjectB =
interface IVisitable with
member this.InvokeVisit (visitor: IVisitor) =
visitor.Visit(this)
type MyVisitor =
member this.Visit (a : ObjectA) =
printfn "Visited object A"
member this.Visit (b : ObjectB) =
printfn "Visited object B"
Run Code Online (Sandbox Code Playgroud)
这样可以很好地编译,但是IVisitable由于使用了and关键字,我们只能在一个文件中实现所有类型。该关键字似乎对于允许相互类型引用是必需的。
有没有一种方式可以实现这种模式,使我们不限于一个文件? …