// include the latest version of the regex crate in your Cargo.toml
extern crate regex;
use regex::Regex;
fn main() {
let regex = Regex::new(r"(?s)(.*\()").unwrap();
let string = "// API callback
google.search.Search.apiary2387({
\"cursor\": {
\"currentPageIndex\": 0,
\"estimatedResultCount\": \"4490\",
\"moreResultsUrl\": \"http://www.google.com/cse?oe=utf8&ie=utf8&source=uds&q=ssh&start=0&sort=&cx=013305635491195529773:0ufpuq-fpt0\",
\"resultCount\": \"4,490\",
\"searchResultTime\": \"0.22\",
\"pages\": [
{
\"label\": 1,
\"start\": \"0\"
},
{
\"label\": 2,
\"start\": \"1\"
},
{
\"label\": 3,
\"start\": \"2\"
},
{
\"label\": 4,
\"start\": \"3\"
},
{
\"label\": 5,
\"start\": \"4\"
},
{
\"label\": 6,
\"start\": \"5\"
},
{
\"label\": 7,
\"start\": \"6\"
},
{
\"label\": 8,
\"start\": \"7\"
},
{
\"label\": 9,
\"start\": \"8\"
},
{
\"label\": 10,
\"start\": \"9\"
}
]
},
\"context\": {
\"title\": \"Pastebin Active\",
\"total_results\": \"0\",
\"facets\": []
},
\"results\": [
{
\"GsearchResultClass\": \"GwebSearch\",
\"cacheUrl\": \"http://www.google.com/search?q=cache:PBL2A25kpZoJ:pastebin.com\",
\"clicktrackUrl\": \"https://www.google.com/url?q=http://pastebin.com/u/ssh&sa=U&ved=0ahUKEwiO4fjNpovMAhWBPxoKHYJXAS4QFggEMAA&client=internal-uds-cse&usg=AFQjCNHczEhDXdcUnRZhpArEeSiHfjwMJA\",
\"content\": \"BitBucket - Backup your code in the cloud! Host unlimited private projects, for free\\n. SIGN UP takes 10 seconds, and it's free! Guest ...\",
\"contentNoFormatting\": \"BitBucket - Backup your code in the cloud! Host unlimited private projects, for free\\n. SIGN UP takes 10 seconds, and it's free! Guest ...\",
\"formattedUrl\": \"pastebin.com/u/\\u003cb\\u003essh\\u003c/b\\u003e\",
\"title\": \"\\u003cb\\u003eSsh's\\u003c/b\\u003e Pastebin - Pastebin.com\",
\"titleNoFormatting\": \"Ssh's Pastebin - Pastebin.com\",
\"unescapedUrl\": \"http://pastebin.com/u/ssh\",
\"url\": \"http://pastebin.com/u/ssh\",
\"visibleUrl\": \"pastebin.com\",
\"richSnippet\": {
\"cseImage\": {
\"src\": \"http://pastebin.com/i/facebook.png\"
},
\"metatags\": {
\"fbAppId\": \"231493360234820\",
\"ogTitle\": \"Ssh's Pastebin - Pastebin.com\",
\"ogType\": \"article\",
\"ogUrl\": \"http://pastebin.com/u/ssh\",
\"ogImage\": \"http://pastebin.com/i/facebook.png\",
\"ogSiteName\": \"Pastebin\",
\"viewport\": \"width=device-width, maximum-scale=1.0, user-scalable=no\"
}
}
}
]
}
);";
// result will be a tuple containing the start and end indices for the first match in the string
let result = regex.captures(string);
let (start, end) = match result {
Some((s, e)) => (s, e),
None => {
// ...
}
};
println!("{}", &string[start, end]);
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Rust, please visit: https://docs.rs/regex/latest/regex/