// 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"(?m)^\*:?[^\n:]*: *([^\|\}\)\n]+\|([^\|\}\)\n]+))").unwrap();
let string = "* Abenaki: {{t|abe|anaskemen}} {{qualifier|red or black oak acorn; literally \"oak berry\"}}, {{t|abe|anaskebagôn}} {{qualifier|red or black oak acorn; literally \"oak nut\"}}, {{t|abe|wachil}} {{qualifier|white oak acorn}}
* Adyghe: {{t|ady|мышкӏу}}
* Afrikaans: {{t+|af|akker}}
* Albanian: {{t+|sq|lende|f}}, {{t+|sq|gogël|f}}
* Arabic: {{t|ar|بَلُّوط|m}} (''collective''), {{t|ar|بَلُّوطَة|f}} (''singulative'')
*: Moroccan Arabic: {{t|ary|بلوط|m|tr=belloṭ|alt=بلّوط|sc=Arab}} (''collective''), {{t|ary|بلوطة|f|tr=belloṭa|alt=بلّوطة|sc=Arab}} (''singulative'')
* Aragonese: {{t+|an|ballota|f}}
* Armenian: {{t+|hy|կաղին}}
*: Middle Armenian: {{t|axm|պալուտ}}
* Aromanian: {{t|rup|gljindã|f}}, {{t|rup|docãrã|f}}, {{t|rup|vãlani|f}}
* Asturian: {{t|ast|llande|m}}, {{t|ast|abeyota|f}}, {{t|ast|abellota|f}}
* Azerbaijani: {{t|az|palıd qozası}}
* Basque: {{t+|eu|ezkur}}
* Belarusian: {{t|be|жо́луд|m|sc=Cyrl}}
* Breton: {{t+|br|mez|f|alt=mezenn}}
* Bulgarian: {{t+|bg|жъ̀лъд|m}}
* Catalan: {{t+|ca|gla|f}}
* Catawba: {{t|chc|tumo}} {{qualifier|plural}}
* Central Mazahua: {{t|maz|løjø}}
* Central Sierra Miwok: {{t|csm|watýkˑa-}}, {{t|csm|watýk·a-}}
* Cherokee: {{t|chr|ᎬᎴ|sc=Cher}}
* Chinese:
*: Cantonese: {{t|yue|橡子|tr=zoeng6 zi2|sc=Hani}}
*: Mandarin: {{t+|cmn|橡子|tr=xiàngzǐ}}, {{t|cmn|橡果|tr=xiàngguǒ|sc=Hani}}
* Classical Nahuatl: {{t|nci|āhuacuauhtomatl}}, {{t|nci|āhuatomatl}}
* Cree: {{t|cr|ᒥᐢᑎᑯᒥᐣ|tr=mistikomin|sc=Cans}} {{qualifier|literally \"oak berry\"}}, {{t|cr|ᒥᐢᑎᑯᐹᑲᐣ|tr=mistikopâkan|sc=Cans}} {{qualifier|literally \"oak nut\"}}
* Czech: {{t+|cs|žalud|m}}
* Danish: {{t+|da|agern|n}}
* Dhivehi: {{t|dv|ކަށި ބުރޮޅި|sc=Thaa}}
* Dutch: {{t+|nl|eikel|m}}
* Esperanto: {{t|eo|glano}}
* Estonian: {{t|et|tammetõru}}
* Faroese: {{t|fo|akarn|n}}, {{t|fo|eikinøt|f}}
* Finnish: {{t+|fi|tammenterho}}
* French: {{t+|fr|gland|m}}
* Friulian: {{t|fur|gland|m}}
* Galician: {{t|gl|belota|f}}, {{t|gl|landra|f}}, {{t|gl|landa|f}}, {{t+|gl|glande|m}}
* Georgian: {{t|ka|რკო|sc=Geor}}
* German: {{t+|de|Eichel|f}}
* Greek: {{t+|el|βελανίδι|n}}
*: Ancient: {{t|grc|βάλανος|f}}
* Hebrew: {{t+|he|בַּלּוּט|m|tr=balút|sc=Hebr}}
* Hungarian: {{t+|hu|makk}}
* Icelandic: {{t|is|akarn|n}}
* Ido: {{t+|io|glano}}
* Interlingua: {{t|ia|glande}}
* Irish: {{t|ga|dearcán|m}}
* Italian: {{t+|it|ghianda|f}}
* Japanese: {{t+|ja|どんぐり|tr=donguri|sc=Jpan}}, {{t+|ja|団栗|tr=どんぐり, donguri|sc=Jpan}}
* Kazakh: {{t|kk|емен жаңғағы|sc=Cyrl}}
* Korean: {{t|ko|에이콘}}, {{t+|ko|도토리}}
* Kurdish:
*: Kurmanji: {{t+|ku|belot|sc=Latn}}
* Kyrgyz: {{t|ky|жёлудь|sc=Cyrl}}
* Lao: {{t-needed|lo}}
* Latgalian: {{t|ltg|zeile|f}}
* Latin: {{t|la|glans|f}}
* Latvian: {{t|lv|zīle|f}}, {{t|lv|ozolzīle|f}}
* Lithuanian: {{t|lt|gilė|f}}
* Luxembourgish: {{t|lb|Eechel|f}}
* Macedonian: {{t|mk|желад|m}}, {{t|mk|жир|m}}
* Malagasy: {{t|mg|voan'oaka}}
* Maori: {{t|mi|huaōki}}
* Mohegan-Pequot: {{t|xpq|anôhcum}}
* Navajo: {{t|nv|chéchʼil binááʼ}}
* Neapolitan: {{t|nap|gliandra|f}}
* Norman: {{t|nrf|tchênelle|f}}
* Norwegian: {{t|no|kongle|m|f}}, {{t|no|åkorn|n}}
*: Bokmål: {{t|nb|eikenøtt|m|f}}
*: Nynorsk: {{t|nn|eikenøtt|f}}
* Occitan: {{t|oc|agland|m}}
* Ojibwe: {{t|oj|mitigomin}}
* Old Church Slavonic: {{t|cu|желѫдь|m|sc=Glag}}
* Old English: {{t|ang|ǣcern|n}}
* Ossetian: {{t|os|гыркъо}}
* Panamint: {{t|par|wiyan}}, {{t|par|wiyampi}}
* Persian: {{t+|fa|بلوط|tr=balut|sc=fa-Arab}}
* Polish: {{t+|pl|żołądź|m}}
* Portuguese: {{t+|pt|bolota|f}}
* Romanian: {{t+|ro|ghindă|f}}
* Romansch: {{t|rm|glogn}}, {{t|rm|glonda}}, {{t|rm|glànd}}, {{t|rm|glanda}}
* Russian: {{t+|ru|жёлудь|m}}
* Sardinian: {{t|sc|landha}}, {{t|sc|landhe}}, {{t|sc|landi}}
* Saterland Frisian: {{t|stq|Äkkene|n}}
* Scottish Gaelic: {{t|gd|dearc-dharaich|f}}
* Serbo-Croatian:
*: Cyrillic: {{t|sh|жи̑р|m}}, {{t|sh|желуд|m|}}
*: Roman: {{t+|sh|žȋr|m}}, {{t|sh|želud|m|}}
* Sicilian: {{t+|scn|agghiànnara|f}}
* Silesian: {{t|szl|ajchel|f}}
* Slovak: {{t|sk|žaluď|m}}
* Slovene: {{t+|sl|želod|m}}
* Sorbian:
*: Lower Sorbian: {{t|dsb|žołź|m}}
*: Upper Sorbian: {{t|hsb|žołdź|m}}
* Spanish: {{t+|es|bellota|f}}
* Sudovian: {{t|xsv|gile}}
* Swedish: {{t+|sv|ekollon|n}}
* Tagalog: {{t|tl|ensina}}, {{t|tl|belyota}}
* Tajik: {{t|tg|балут}}
* Thai: {{t|th|ผลต้นโอ๊ก}}
* Turkish: {{t+|tr|palamut}}
* Ukrainian: {{t+|uk|жо́лудь|m|sc=Cyrl}}
* Uzbek: {{t+|uz|choʻchqayongʻoq}}
* Vietnamese: {{t+|vi|đầu}}
* Vilamovian: {{t|wym|achuł|f}}
* Volapük: {{t+|vo|kvär}}, {{qualifier|older word, obsolete}} {{t|vo|gölogafluk}}
* Walloon: {{t+|wa|gland|f}}
* Welsh: {{t+|cy|mesen|f}}
";
// 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/