// 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#"import\s+(?:{[^{}]+}|.*?)\s*(?:from)?\s*['"].*?['"]|import\(.*?\)"#).unwrap();
let string = "import {
Component
} from '@angular2/core';
import defaultMember from \"module-name\";
import * as name from \"module-name \";
import { member } from \" module-name\";
import { member as alias } from \"module-name\";
import { member1 , member2 } from \"module-name\";
import { member1 , member2 as alias2 , member3 as alias3 } from \"module-name\";
import {
Component
} from '@angular2/core';
import defaultMember from \"$module-name\";
import defaultMember, { member, member } from \"module-name\";
import defaultMember, * as name from \"module-name\";
import * as name from \"module-name \"
import { member } from \" module-name\"
import { member as alias } from \"module-name\"
import { member1 , member2 } from \"module-name\"
import { member1 , member2 as alias2 , member3 as alias3 } from \"module-name\"
import {
Component
} from '@angular2/core'
import defaultMember from \"$module-name\"
import defaultMember, { member, member } from \"module-name\"
import defaultMember, * as name from \"module-name\"
import \"module-name\";
import React from \"react\"
import { Field } from \"redux-form\"
import \"module-name\";
import {
PlaneBufferGeometry,
OctahedronGeometry,
TorusBufferGeometry
} from '../geometries/Geometries.js';
import {
PlaneBufferGeometry,
OctahedronGeometry,
TorusBufferGeometry
} from '../geometries/Geometries.js'
import(\"whatever.js\");
import(\"whatever.js\")
import { Field } from \"redux-form\";
import MultiContentListView from \"./views/ListView\";
import MultiContentAddView from \"./views/AddView\";
import MultiContentEditView from \"./views/EditView\";
import { Field } from \"redux-form\"
import MultiContentListView from \"./views/ListView\"
import MultiContentAddView from \"./views/AddView\"
import MultiContentEditView from \"./views/EditView\"
<MenuItem value=\"^$\" primaryText=\"Não exibir importados\" />
<MenuItem value=\"\\\\w+\" primaryText=\"Exibir importados\" />
// *Add all needed dependency to this module
// *app requires those import modules to function
*/
/**
*
*Add all needed dependency to this module
*app requires those import modules to function
*
**/
let modules = [];
import defaultExport from \"module-name\";
import * as name from \"module-name\";
import { export1 } from \"module-name\";
import { export1 as alias1 } from \"module-name\";
import { default as alias } from \"module-name\";
import { export1, export2 } from \"module-name\";
import { export1, export2 as alias2, /* … */ } from \"module-name\";
import { \"string name\" as alias } from \"module-name\";
import defaultExport, { export1, /* … */ } from \"module-name\";
import defaultExport, * as name from \"module-name\";
import \"module-name\";
import { \"a-b\" as a } from \"/modules/my-module.js\";
import myDefault from \"/modules/my-module.js\";
import myDefault, * as myModule from \"/modules/my-module.js\";
";
// result will be an iterator over tuples containing the start and end indices for each match in the string
let result = regex.captures_iter(string);
for mat in result {
println!("{:?}", mat);
}
}
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/