2016-05-29 79 views
4

我在Rust写了几个小脚本。这些可以通过如下命令如何在没有货物的情况下在Rust中使用regexes?

$ rustc dosomething.rs && ./dosomething 

这些工作的伟大运行。但是,我遇到了一个需要使用正则表达式的情况。我开始与脚本extern crate regex;出现,这意味着我需要通过货运运行我的脚本。我设法运行使用正则表达式这个小脚本的唯一方法是迫使我的脚本到它自己的目录,具有以下结构:

. 
├── Cargo.toml 
└── src 
   └── main.rs 

[package] 
name = "wordcount" 
version = "0.0.1" 

[dependencies] 
regex = "0.1" 

装起来Cargo.toml和忠实地跑cargo build并获得了我的可执行文件。

但是,当计算货物制品使用的磁盘空间时,我发现它们由17个文件,21个目录和23兆字节组成。

现在,这在运行大型应用程序时是完全正确的;我看起来很小的Java应用程序,其中Maven下载了23M的微型罐。

我只是想知道是否没有其他方式来使用正则表达式在Rust中编写脚本。 (是的,我确实需要正则表达式,因为易于使用\pL。)

Rust中是否有内置的正则表达式支持,或者是否将我的wordcount脚本与我的其他脚本保持在同一目录中?也许有一些类似于-L的标志吗?

+2

我想你是在说这不是Cargo的问题,而是Regex箱子及其依赖关系的组合大小。我能想到的唯一选择是用ffi封装一个C/C++正则表达式引擎,例如pcre(并且不计算它的大小,假设它已经安装)。 –

+0

您可以使单个货运项目编译多个二进制文件,这些二进制文件在技术上符合将所有内容保存在同一目录中的条件。您也可以通过在您的'Cargo.toml'中明确设置源代码的路径来消除'src'目录本身。 – BurntSushi5

+1

您可以使用没有Cargo的正则表达式箱子,但是您必须重复Cargo为您做的所有工作。例如,正则表达式包有几个依赖关系,你也必须安装。 – BurntSushi5

回答

1

是否有内置支持正则表达式拉斯特

否,但正则表达式箱will (probably) be标准(满分std?)的正则表达式库生锈。

或某种方式来保持我的wordcount脚本与我的其他脚本在同一目录中?

货物项目可以有一个可执行文件more than。只要把每个主文件放在src/bin

+0

啊,我不知道多个二进制项目! –

相关问题