static string Example_1() { var letters = new string[] { "a", "b", "c" }; IRegexBuilder regex = new RegexBuilder() .StartGroup("first_letter") // on crée un group de capture nommé .Disjunction(letters) .AtLeast(1) .CloseGroup(); return(regex.Regex()); }
public string WordReadingWithSpacesRegex() { IRegexBuilder regex = new RegexBuilder() .Raw(SingleSyllableRegex()) .StartGroup() .Char(' ') // chinese space .Raw(SingleSyllableRegex()) .CloseGroup() .KleenStar(); return($"^{regex.Regex()}$"); }
private string SingleSyllableRegex() { IRegexBuilder regex = new RegexBuilder() .Char('˙').AtMost(1) .Disjunction( // voyelle seule, ex: 阿 ㄚ new RegexBuilder() .StartGroup("vowel_only") .Disjunction(vowels.KeysArray()) .CloseGroup(), // médiale seule, ex: 五 ㄨ new RegexBuilder() .StartGroup("medial_only") .Disjunction(medials.KeysArray()) .CloseGroup(), // finale seule, ex: 案 ㄢ new RegexBuilder() .StartGroup("rime_only") .Disjunction(rimes.KeysArray()) .CloseGroup(), // consonne syllabique seule (seulement ㄓ, ㄔ, ㄕ, ㄖ, ㄙ) new RegexBuilder() .StartGroup("syllabic_consonant_only") .Disjunction(syllabic_consonants.KeysArray()) .CloseGroup(), // médiale + rime, ex: 王 ㄨㄤ new RegexBuilder() .StartGroup() .Disjunction(medials.KeysArray()) .Disjunction(rimes.KeysArray()) .CloseGroup(), // consonne + voyelle, ex: 怕 ㄆㄚ new RegexBuilder() .StartGroup("consonant_and_vowel") .Disjunction(consonants.KeysArray()) .Disjunction(vowels.KeysArray()) .CloseGroup(), // consonne + médiale, ex: 不 ㄅㄨ new RegexBuilder() .StartGroup("consonant_and_medial") .Disjunction(consonants.KeysArray()) .Disjunction(medials.KeysArray()) .CloseGroup(), // consonne + rime new RegexBuilder() .StartGroup("consonant_and_rime") .Disjunction(consonants.KeysArray()) .Disjunction(rimes.KeysArray()) .CloseGroup(), // consonne + médiale + vowel, ex: 別 ㄅㄧㄝ new RegexBuilder() .StartGroup("consonant_and_medial_and_vowel") .Disjunction(consonants.KeysArray()) .Disjunction(medials.KeysArray()) .Disjunction(vowels.KeysArray()) .CloseGroup(), // consonne + médiale + rime, ex: 囧 ㄐㄩㄥ (jiong) new RegexBuilder() .StartGroup("consonant_and_medial_and_rime") .Disjunction(consonants.KeysArray()) .Disjunction(medials.KeysArray()) .Disjunction(rimes.KeysArray()) .CloseGroup() ).Disjunction(tones.KeysArray().Take(4).ToArray()).AtMost(1); return(regex.Regex()); }