6 releases
Uses old Rust 2015
0.2.3 | Jul 14, 2016 |
---|---|
0.2.2 | Jan 24, 2016 |
0.2.1 | Dec 9, 2015 |
0.2.0 | Nov 11, 2015 |
0.1.0 | May 22, 2015 |
#3 in #regexp
82 downloads per month
Used in 2 crates
44KB
781 lines
rust-pcre
Rust 1.x+ wrapper for libpcre 8.20+.
Quick Start
To use rust-pcre, you can either install libpcre 8.20+ and register with pkg-config or you can let rust-pcre build libpcre from source.
Debian
Debian Squeeze's package for libpcre is for version 8.02 of the library, which is too old. You can either install a newer version of libpcre and register it with pkg-config or just let rust-pcre automatically build libpcre from source.
On Debian Wheezy and newer, install the libpcre3-dev
package:
sudo apt-get install libpcre3-dev
Fedora
Install the pcre-devel
package.
Mac OS X
Mac OS 10.7 ships with version 8.02 of libpcre. You can either install a newer version of libpcre and register it with pkg-config or just let rust-pcre automatically build libpcre from source.
Homebrew is highly recommended for installing libpcre. With Homebrew, installing the latest versions of Rust and libpcre is as simple as:
brew install rust pcre
To upgrade:
brew update && brew upgrade rust pcre
Ubuntu
The libpcre packages for Ubuntu 10.04 LTS 'Lucid Lynx' and Ubuntu 12.04 LTS 'Precise Pangolin' are too old. You can either install a newer version of libpcre and register it with pkg-config or just let rust-pcre automatically build libpcre from source.
On Ubuntu 12.10 'Quantal Quetzal' and newer, install the libpcre3-dev
package:
sudo apt-get install libpcre3-dev
Usage
The basic use of the library involves compiling a pattern regular expression:
let mut re = match Pcre::compile(pattern) {
Err(err) => {
// compilation failed
return;
},
Ok(re) => re
};
You can also pass options:
let mut compile_options: EnumSet<CompileOption> = EnumSet::new();
compile_options.insert(CompileOption::Caseless);
let mut re = Pcre::compile_with_options(pattern, &compile_options).unwrap();
To test against a subject string, use one of the exec(), exec_from(), or exec_from_with_options() methods. For example:
let m = match re.exec(subject) {
None => { println("No match"); return; },
Some(m) => m
};
See the source of pcredemo
for a complete example.
Dependencies
~60KB